<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	<title>API: container   Overlay.js  (YUI Library)</title>

	<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
	<link rel="stylesheet" type="text/css" href="assets/api.css" />

    <script type="text/javascript" src="assets/api-js"></script>
    <script type="text/javascript" src="assets/ac-js"></script>
</head>

<body id="yahoo-com">

<div id="doc3" class="yui-t2">
	<div id="hd">
        <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
        <h3>Container&nbsp; <span class="subtitle">2.9.0</span></h3>
        <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
            &gt; <a href="./module_container.html" title="container">container</a>
                
                 &gt; Overlay.js (source view) 
        <form onsubmit="return false">
            <div id="propertysearch">
                Search: <input autocomplete="off" id="searchinput" />
                <div id="searchresults">
                    &nbsp;
                </div>
            </div>
        </form>
	</div>

	<div id="bd">
		<div id="yui-main">
			<div class="yui-b">
            <form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
                <fieldset>
                    <legend>Filters</legend>
                <span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
                <span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
                <span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
                </fieldset>
            </form>

                    <div id="srcout">
                        <style>
                            #doc3 .classopts { display:none; }
                        </style>
                        <div class="highlight"><pre><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

    <span class="cm">/**</span>
<span class="cm">    * Overlay is a Module that is absolutely positioned above the page flow. It </span>
<span class="cm">    * has convenience methods for positioning and sizing, as well as options for </span>
<span class="cm">    * controlling zIndex and constraining the Overlay&#39;s position to the current </span>
<span class="cm">    * visible viewport. Overlay also contains a dynamicly generated IFRAME which </span>
<span class="cm">    * is placed beneath it for Internet Explorer 6 and 5.x so that it will be </span>
<span class="cm">    * properly rendered above SELECT elements.</span>
<span class="cm">    * @namespace YAHOO.widget</span>
<span class="cm">    * @class Overlay</span>
<span class="cm">    * @extends YAHOO.widget.Module</span>
<span class="cm">    * @param {String} el The element ID representing the Overlay &lt;em&gt;OR&lt;/em&gt;</span>
<span class="cm">    * @param {HTMLElement} el The element representing the Overlay</span>
<span class="cm">    * @param {Object} userConfig The configuration object literal containing </span>
<span class="cm">    * the configuration that should be set for this Overlay. See configuration </span>
<span class="cm">    * documentation for more details.</span>
<span class="cm">    * @constructor</span>
<span class="cm">    */</span>
    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Overlay</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">userConfig</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Overlay</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">constructor</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">el</span><span class="p">,</span> <span class="nx">userConfig</span><span class="p">);</span>
    <span class="p">};</span>

    <span class="kd">var</span> <span class="nx">Lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">,</span>
        <span class="nx">CustomEvent</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">CustomEvent</span><span class="p">,</span>
        <span class="nx">Module</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Module</span><span class="p">,</span>
        <span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Event</span><span class="p">,</span>
        <span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Dom</span><span class="p">,</span>
        <span class="nx">Config</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">util</span><span class="p">.</span><span class="nx">Config</span><span class="p">,</span>
        <span class="nx">UA</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">env</span><span class="p">.</span><span class="nx">ua</span><span class="p">,</span>
        <span class="nx">Overlay</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Overlay</span><span class="p">,</span>

        <span class="nx">_SUBSCRIBE</span> <span class="o">=</span> <span class="s2">&quot;subscribe&quot;</span><span class="p">,</span>
        <span class="nx">_UNSUBSCRIBE</span> <span class="o">=</span> <span class="s2">&quot;unsubscribe&quot;</span><span class="p">,</span>
        <span class="nx">_CONTAINED</span> <span class="o">=</span> <span class="s2">&quot;contained&quot;</span><span class="p">,</span>

        <span class="nx">m_oIFrameTemplate</span><span class="p">,</span>

        <span class="cm">/**</span>
<span class="cm">        * Constant representing the name of the Overlay&#39;s events</span>
<span class="cm">        * @property EVENT_TYPES</span>
<span class="cm">        * @private</span>
<span class="cm">        * @final</span>
<span class="cm">        * @type Object</span>
<span class="cm">        */</span>
        <span class="nx">EVENT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
            <span class="s2">&quot;BEFORE_MOVE&quot;</span><span class="o">:</span> <span class="s2">&quot;beforeMove&quot;</span><span class="p">,</span>
            <span class="s2">&quot;MOVE&quot;</span><span class="o">:</span> <span class="s2">&quot;move&quot;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Constant representing the Overlay&#39;s configuration properties</span>
<span class="cm">        * @property DEFAULT_CONFIG</span>
<span class="cm">        * @private</span>
<span class="cm">        * @final</span>
<span class="cm">        * @type Object</span>
<span class="cm">        */</span>
        <span class="nx">DEFAULT_CONFIG</span> <span class="o">=</span> <span class="p">{</span>

            <span class="s2">&quot;X&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;x&quot;</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isNumber</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;iframe&quot;</span><span class="p">]</span>
            <span class="p">},</span>

            <span class="s2">&quot;Y&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;y&quot;</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isNumber</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;iframe&quot;</span><span class="p">]</span>
            <span class="p">},</span>

            <span class="s2">&quot;XY&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;xy&quot;</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;iframe&quot;</span><span class="p">]</span> 
            <span class="p">},</span>

            <span class="s2">&quot;CONTEXT&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;context&quot;</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;iframe&quot;</span><span class="p">]</span> 
            <span class="p">},</span>

            <span class="s2">&quot;FIXED_CENTER&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;fixedcenter&quot;</span><span class="p">,</span> 
                <span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;iframe&quot;</span><span class="p">,</span> <span class="s2">&quot;visible&quot;</span><span class="p">]</span> 
            <span class="p">},</span>

            <span class="s2">&quot;WIDTH&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;width&quot;</span><span class="p">,</span>
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;context&quot;</span><span class="p">,</span> <span class="s2">&quot;fixedcenter&quot;</span><span class="p">,</span> <span class="s2">&quot;iframe&quot;</span><span class="p">]</span>
            <span class="p">},</span> 

            <span class="s2">&quot;HEIGHT&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;height&quot;</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;context&quot;</span><span class="p">,</span> <span class="s2">&quot;fixedcenter&quot;</span><span class="p">,</span> <span class="s2">&quot;iframe&quot;</span><span class="p">]</span> 
            <span class="p">},</span>

            <span class="s2">&quot;AUTO_FILL_HEIGHT&quot;</span> <span class="o">:</span> <span class="p">{</span>
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;autofillheight&quot;</span><span class="p">,</span>
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;height&quot;</span><span class="p">],</span>
                <span class="nx">value</span><span class="o">:</span><span class="s2">&quot;body&quot;</span>
            <span class="p">},</span>

            <span class="s2">&quot;ZINDEX&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;zindex&quot;</span><span class="p">,</span> 
                <span class="nx">value</span><span class="o">:</span> <span class="kc">null</span> 
            <span class="p">},</span>

            <span class="s2">&quot;CONSTRAIN_TO_VIEWPORT&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;constraintoviewport&quot;</span><span class="p">,</span> 
                <span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isBoolean</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;iframe&quot;</span><span class="p">,</span> <span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="s2">&quot;xy&quot;</span><span class="p">]</span>
            <span class="p">},</span> 

            <span class="s2">&quot;IFRAME&quot;</span><span class="o">:</span> <span class="p">{</span> 
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;iframe&quot;</span><span class="p">,</span> 
                <span class="nx">value</span><span class="o">:</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span> <span class="o">==</span> <span class="mi">6</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="p">),</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isBoolean</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;zindex&quot;</span><span class="p">]</span> 
            <span class="p">},</span>

            <span class="s2">&quot;PREVENT_CONTEXT_OVERLAP&quot;</span><span class="o">:</span> <span class="p">{</span>
                <span class="nx">key</span><span class="o">:</span> <span class="s2">&quot;preventcontextoverlap&quot;</span><span class="p">,</span>
                <span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="p">,</span>
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">isBoolean</span><span class="p">,</span>  
                <span class="nx">supercedes</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;constraintoviewport&quot;</span><span class="p">]</span>
            <span class="p">}</span>

        <span class="p">};</span>

    <span class="cm">/**</span>
<span class="cm">    * The URL that will be placed in the iframe</span>
<span class="cm">    * @property YAHOO.widget.Overlay.IFRAME_SRC</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">IFRAME_SRC</span> <span class="o">=</span> <span class="s2">&quot;javascript:false;&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Number representing how much the iframe shim should be offset from each </span>
<span class="cm">    * side of an Overlay instance, in pixels.</span>
<span class="cm">    * @property YAHOO.widget.Overlay.IFRAME_SRC</span>
<span class="cm">    * @default 3</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type Number</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">IFRAME_OFFSET</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Number representing the minimum distance an Overlay instance should be </span>
<span class="cm">    * positioned relative to the boundaries of the browser&#39;s viewport, in pixels.</span>
<span class="cm">    * @property YAHOO.widget.Overlay.VIEWPORT_OFFSET</span>
<span class="cm">    * @default 10</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type Number</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">VIEWPORT_OFFSET</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the top left corner of an element, used for </span>
<span class="cm">    * configuring the context element alignment</span>
<span class="cm">    * @property YAHOO.widget.Overlay.TOP_LEFT</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">TOP_LEFT</span> <span class="o">=</span> <span class="s2">&quot;tl&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the top right corner of an element, used for </span>
<span class="cm">    * configuring the context element alignment</span>
<span class="cm">    * @property YAHOO.widget.Overlay.TOP_RIGHT</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">TOP_RIGHT</span> <span class="o">=</span> <span class="s2">&quot;tr&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the top bottom left corner of an element, used for </span>
<span class="cm">    * configuring the context element alignment</span>
<span class="cm">    * @property YAHOO.widget.Overlay.BOTTOM_LEFT</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">BOTTOM_LEFT</span> <span class="o">=</span> <span class="s2">&quot;bl&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the bottom right corner of an element, used for </span>
<span class="cm">    * configuring the context element alignment</span>
<span class="cm">    * @property YAHOO.widget.Overlay.BOTTOM_RIGHT</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">BOTTOM_RIGHT</span> <span class="o">=</span> <span class="s2">&quot;br&quot;</span><span class="p">;</span>

    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">PREVENT_OVERLAP_X</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;tltr&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">&quot;blbr&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">&quot;brbl&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">&quot;trtl&quot;</span><span class="o">:</span> <span class="kc">true</span>
    <span class="p">};</span>
            
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">PREVENT_OVERLAP_Y</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;trbr&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">&quot;tlbl&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">&quot;bltl&quot;</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">&quot;brtr&quot;</span><span class="o">:</span> <span class="kc">true</span>
    <span class="p">};</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the default CSS class used for an Overlay</span>
<span class="cm">    * @property YAHOO.widget.Overlay.CSS_OVERLAY</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_OVERLAY</span> <span class="o">=</span> <span class="s2">&quot;yui-overlay&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the default hidden CSS class used for an Overlay. This class is </span>
<span class="cm">    * applied to the overlay&#39;s outer DIV whenever it&#39;s hidden.</span>
<span class="cm">    *</span>
<span class="cm">    * @property YAHOO.widget.Overlay.CSS_HIDDEN</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_HIDDEN</span> <span class="o">=</span> <span class="s2">&quot;yui-overlay-hidden&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * Constant representing the default CSS class used for an Overlay iframe shim.</span>
<span class="cm">    * </span>
<span class="cm">    * @property YAHOO.widget.Overlay.CSS_IFRAME</span>
<span class="cm">    * @static</span>
<span class="cm">    * @final</span>
<span class="cm">    * @type String</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_IFRAME</span> <span class="o">=</span> <span class="s2">&quot;yui-overlay-iframe&quot;</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">     * Constant representing the names of the standard module elements</span>
<span class="cm">     * used in the overlay.</span>
<span class="cm">     * @property YAHOO.widget.Overlay.STD_MOD_RE</span>
<span class="cm">     * @static</span>
<span class="cm">     * @final</span>
<span class="cm">     * @type RegExp</span>
<span class="cm">     */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">STD_MOD_RE</span> <span class="o">=</span> <span class="sr">/^\s*?(body|footer|header)\s*?$/i</span><span class="p">;</span>

    <span class="cm">/**</span>
<span class="cm">    * A singleton CustomEvent used for reacting to the DOM event for </span>
<span class="cm">    * window scroll</span>
<span class="cm">    * @event YAHOO.widget.Overlay.windowScrollEvent</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CustomEvent</span><span class="p">(</span><span class="s2">&quot;windowScroll&quot;</span><span class="p">);</span>

    <span class="cm">/**</span>
<span class="cm">    * A singleton CustomEvent used for reacting to the DOM event for</span>
<span class="cm">    * window resize</span>
<span class="cm">    * @event YAHOO.widget.Overlay.windowResizeEvent</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CustomEvent</span><span class="p">(</span><span class="s2">&quot;windowResize&quot;</span><span class="p">);</span>

    <span class="cm">/**</span>
<span class="cm">    * The DOM event handler used to fire the CustomEvent for window scroll</span>
<span class="cm">    * @method YAHOO.widget.Overlay.windowScrollHandler</span>
<span class="cm">    * @static</span>
<span class="cm">    * @param {DOMEvent} e The DOM scroll event</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollHandler</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>
        <span class="kd">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Event</span><span class="p">.</span><span class="nx">getTarget</span><span class="p">(</span><span class="nx">e</span><span class="p">);</span>

        <span class="c1">// - Webkit (Safari 2/3) and Opera 9.2x bubble scroll events from elements to window</span>
        <span class="c1">// - FF2/3 and IE6/7, Opera 9.5x don&#39;t bubble scroll events from elements to window</span>
        <span class="c1">// - IE doesn&#39;t recognize scroll registered on the document.</span>
        <span class="c1">//</span>
        <span class="c1">// Also, when document view is scrolled, IE doesn&#39;t provide a target, </span>
        <span class="c1">// rest of the browsers set target to window.document, apart from opera </span>
        <span class="c1">// which sets target to window.</span>
        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">t</span> <span class="o">||</span> <span class="nx">t</span> <span class="o">===</span> <span class="nb">window</span> <span class="o">||</span> <span class="nx">t</span> <span class="o">===</span> <span class="nb">window</span><span class="p">.</span><span class="nb">document</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span><span class="p">)</span> <span class="p">{</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nb">window</span><span class="p">.</span><span class="nx">scrollEnd</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nb">window</span><span class="p">.</span><span class="nx">scrollEnd</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
                <span class="p">}</span>

                <span class="nx">clearTimeout</span><span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">scrollEnd</span><span class="p">);</span>
        
                <span class="nb">window</span><span class="p">.</span><span class="nx">scrollEnd</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> 
                    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span> 
                <span class="p">},</span> <span class="mi">1</span><span class="p">);</span>
        
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">};</span>

    <span class="cm">/**</span>
<span class="cm">    * The DOM event handler used to fire the CustomEvent for window resize</span>
<span class="cm">    * @method YAHOO.widget.Overlay.windowResizeHandler</span>
<span class="cm">    * @static</span>
<span class="cm">    * @param {DOMEvent} e The DOM resize event</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeHandler</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span>

        <span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nb">window</span><span class="p">.</span><span class="nx">resizeEnd</span><span class="p">)</span> <span class="p">{</span>
                <span class="nb">window</span><span class="p">.</span><span class="nx">resizeEnd</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="nx">clearTimeout</span><span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">resizeEnd</span><span class="p">);</span>

            <span class="nb">window</span><span class="p">.</span><span class="nx">resizeEnd</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
                <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span> 
            <span class="p">},</span> <span class="mi">100</span><span class="p">);</span>
        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
        <span class="p">}</span>
    <span class="p">};</span>

    <span class="cm">/**</span>
<span class="cm">    * A boolean that indicated whether the window resize and scroll events have </span>
<span class="cm">    * already been subscribed to.</span>
<span class="cm">    * @property YAHOO.widget.Overlay._initialized</span>
<span class="cm">    * @private</span>
<span class="cm">    * @type Boolean</span>
<span class="cm">    */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">_initialized</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

    <span class="k">if</span> <span class="p">(</span><span class="nx">Overlay</span><span class="p">.</span><span class="nx">_initialized</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
        <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span> <span class="s2">&quot;scroll&quot;</span><span class="p">,</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollHandler</span><span class="p">);</span>
        <span class="nx">Event</span><span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="nb">window</span><span class="p">,</span> <span class="s2">&quot;resize&quot;</span><span class="p">,</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeHandler</span><span class="p">);</span>
        <span class="nx">Overlay</span><span class="p">.</span><span class="nx">_initialized</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="cm">/**</span>
<span class="cm">     * Internal map of special event types, which are provided</span>
<span class="cm">     * by the instance. It maps the event type to the custom event </span>
<span class="cm">     * instance. Contains entries for the &quot;windowScroll&quot;, &quot;windowResize&quot; and</span>
<span class="cm">     * &quot;textResize&quot; static container events.</span>
<span class="cm">     *</span>
<span class="cm">     * @property YAHOO.widget.Overlay._TRIGGER_MAP</span>
<span class="cm">     * @type Object</span>
<span class="cm">     * @static</span>
<span class="cm">     * @private</span>
<span class="cm">     */</span>
    <span class="nx">Overlay</span><span class="p">.</span><span class="nx">_TRIGGER_MAP</span> <span class="o">=</span> <span class="p">{</span>
        <span class="s2">&quot;windowScroll&quot;</span> <span class="o">:</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollEvent</span><span class="p">,</span>
        <span class="s2">&quot;windowResize&quot;</span> <span class="o">:</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeEvent</span><span class="p">,</span>
        <span class="s2">&quot;textResize&quot;</span>   <span class="o">:</span> <span class="nx">Module</span><span class="p">.</span><span class="nx">textResizeEvent</span>
    <span class="p">};</span>

    <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="nx">Overlay</span><span class="p">,</span> <span class="nx">Module</span><span class="p">,</span> <span class="p">{</span>

        <span class="cm">/**</span>
<span class="cm">         * &lt;p&gt;</span>
<span class="cm">         * Array of default event types which will trigger</span>
<span class="cm">         * context alignment for the Overlay class.</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * &lt;p&gt;The array is empty by default for Overlay,</span>
<span class="cm">         * but maybe populated in future releases, so classes extending</span>
<span class="cm">         * Overlay which need to define their own set of CONTEXT_TRIGGERS</span>
<span class="cm">         * should concatenate their super class&#39;s prototype.CONTEXT_TRIGGERS </span>
<span class="cm">         * value with their own array of values.</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * &lt;p&gt;</span>
<span class="cm">         * E.g.:</span>
<span class="cm">         * &lt;code&gt;CustomOverlay.prototype.CONTEXT_TRIGGERS = YAHOO.widget.Overlay.prototype.CONTEXT_TRIGGERS.concat([&quot;windowScroll&quot;]);&lt;/code&gt;</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * </span>
<span class="cm">         * @property CONTEXT_TRIGGERS</span>
<span class="cm">         * @type Array</span>
<span class="cm">         * @final</span>
<span class="cm">         */</span>
        <span class="nx">CONTEXT_TRIGGERS</span> <span class="o">:</span> <span class="p">[],</span>

        <span class="cm">/**</span>
<span class="cm">        * The Overlay initialization method, which is executed for Overlay and  </span>
<span class="cm">        * all of its subclasses. This method is automatically called by the </span>
<span class="cm">        * constructor, and  sets up all DOM references for pre-existing markup, </span>
<span class="cm">        * and creates required markup if it is not already present.</span>
<span class="cm">        * @method init</span>
<span class="cm">        * @param {String} el The element ID representing the Overlay &lt;em&gt;OR&lt;/em&gt;</span>
<span class="cm">        * @param {HTMLElement} el The element representing the Overlay</span>
<span class="cm">        * @param {Object} userConfig The configuration object literal </span>
<span class="cm">        * containing the configuration that should be set for this Overlay. </span>
<span class="cm">        * See configuration documentation for more details.</span>
<span class="cm">        */</span>
        <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="nx">userConfig</span><span class="p">)</span> <span class="p">{</span>

            <span class="cm">/*</span>
<span class="cm">                 Note that we don&#39;t pass the user config in here yet because we</span>
<span class="cm">                 only want it executed once, at the lowest subclass level</span>
<span class="cm">            */</span>

            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">init</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">el</span><span class="cm">/*, userConfig*/</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">beforeInitEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">Overlay</span><span class="p">);</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_OVERLAY</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">userConfig</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">applyConfig</span><span class="p">(</span><span class="nx">userConfig</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">&quot;mac&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">gecko</span><span class="p">)</span> <span class="p">{</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">Config</span><span class="p">.</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">,</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">showMacGeckoScrollbars</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="p">{</span>

                    <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">showMacGeckoScrollbars</span><span class="p">,</span> 
                        <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">Config</span><span class="p">.</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">,</span> 
                    <span class="k">this</span><span class="p">.</span><span class="nx">hideMacGeckoScrollbars</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="p">{</span>

                    <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hideMacGeckoScrollbars</span><span class="p">,</span> 
                        <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">initEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">(</span><span class="nx">Overlay</span><span class="p">);</span>
        <span class="p">},</span>
        
        <span class="cm">/**</span>
<span class="cm">        * Initializes the custom events for Overlay which are fired  </span>
<span class="cm">        * automatically at appropriate times by the Overlay class.</span>
<span class="cm">        * @method initEvents</span>
<span class="cm">        */</span>
        <span class="nx">initEvents</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">initEvents</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>

            <span class="kd">var</span> <span class="nx">SIGNATURE</span> <span class="o">=</span> <span class="nx">CustomEvent</span><span class="p">.</span><span class="nx">LIST</span><span class="p">;</span>

            <span class="cm">/**</span>
<span class="cm">            * CustomEvent fired before the Overlay is moved.</span>
<span class="cm">            * @event beforeMoveEvent</span>
<span class="cm">            * @param {Number} x x coordinate</span>
<span class="cm">            * @param {Number} y y coordinate</span>
<span class="cm">            */</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">createEvent</span><span class="p">(</span><span class="nx">EVENT_TYPES</span><span class="p">.</span><span class="nx">BEFORE_MOVE</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="p">;</span>

            <span class="cm">/**</span>
<span class="cm">            * CustomEvent fired after the Overlay is moved.</span>
<span class="cm">            * @event moveEvent</span>
<span class="cm">            * @param {Number} x x coordinate</span>
<span class="cm">            * @param {Number} y y coordinate</span>
<span class="cm">            */</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">moveEvent</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">createEvent</span><span class="p">(</span><span class="nx">EVENT_TYPES</span><span class="p">.</span><span class="nx">MOVE</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">moveEvent</span><span class="p">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="p">;</span>

        <span class="p">},</span>
        
        <span class="cm">/**</span>
<span class="cm">        * Initializes the class&#39;s configurable properties which can be changed </span>
<span class="cm">        * using the Overlay&#39;s Config object (cfg).</span>
<span class="cm">        * @method initDefaultConfig</span>
<span class="cm">        */</span>
        <span class="nx">initDefaultConfig</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
    
            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">initDefaultConfig</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>

            <span class="kd">var</span> <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">;</span>

            <span class="c1">// Add overlay config properties //</span>
            
            <span class="cm">/**</span>
<span class="cm">            * The absolute x-coordinate position of the Overlay</span>
<span class="cm">            * @config x</span>
<span class="cm">            * @type Number</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">X</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span> 
    
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configX</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">X</span><span class="p">.</span><span class="nx">validator</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">X</span><span class="p">.</span><span class="nx">suppressEvent</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">X</span><span class="p">.</span><span class="nx">supercedes</span>
    
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * The absolute y-coordinate position of the Overlay</span>
<span class="cm">            * @config y</span>
<span class="cm">            * @type Number</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">Y</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>

                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configY</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">Y</span><span class="p">.</span><span class="nx">validator</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">Y</span><span class="p">.</span><span class="nx">suppressEvent</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">Y</span><span class="p">.</span><span class="nx">supercedes</span>

            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * An array with the absolute x and y positions of the Overlay</span>
<span class="cm">            * @config xy</span>
<span class="cm">            * @type Number[]</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">XY</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configXY</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">XY</span><span class="p">.</span><span class="nx">suppressEvent</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">XY</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * The array of context arguments for context-sensitive positioning. </span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            *</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * The format of the array is: &lt;code&gt;[contextElementOrId, overlayCorner, contextCorner, arrayOfTriggerEvents (optional), xyOffset (optional)]&lt;/code&gt;, the</span>
<span class="cm">            * the 5 array elements described in detail below:</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            *</span>
<span class="cm">            * &lt;dl&gt;</span>
<span class="cm">            * &lt;dt&gt;contextElementOrId &amp;#60;String|HTMLElement&amp;#62;&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;A reference to the context element to which the overlay should be aligned (or it&#39;s id).&lt;/dd&gt;</span>
<span class="cm">            * &lt;dt&gt;overlayCorner &amp;#60;String&amp;#62;&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;The corner of the overlay which is to be used for alignment. This corner will be aligned to the </span>
<span class="cm">            * corner of the context element defined by the &quot;contextCorner&quot; entry which follows. Supported string values are: </span>
<span class="cm">            * &quot;tr&quot; (top right), &quot;tl&quot; (top left), &quot;br&quot; (bottom right), or &quot;bl&quot; (bottom left).&lt;/dd&gt;</span>
<span class="cm">            * &lt;dt&gt;contextCorner &amp;#60;String&amp;#62;&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;The corner of the context element which is to be used for alignment. Supported string values are the same ones listed for the &quot;overlayCorner&quot; entry above.&lt;/dd&gt;</span>
<span class="cm">            * &lt;dt&gt;arrayOfTriggerEvents (optional) &amp;#60;Array[String|CustomEvent]&amp;#62;&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * By default, context alignment is a one time operation, aligning the Overlay to the context element when context configuration property is set, or when the &lt;a href=&quot;#method_align&quot;&gt;align&lt;/a&gt; </span>
<span class="cm">            * method is invoked. However, you can use the optional &quot;arrayOfTriggerEvents&quot; entry to define the list of events which should force the overlay to re-align itself with the context element. </span>
<span class="cm">            * This is useful in situations where the layout of the document may change, resulting in the context element&#39;s position being modified.</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * The array can contain either event type strings for events the instance publishes (e.g. &quot;beforeShow&quot;) or CustomEvent instances. Additionally the following</span>
<span class="cm">            * 3 static container event types are also currently supported : &lt;code&gt;&quot;windowResize&quot;, &quot;windowScroll&quot;, &quot;textResize&quot;&lt;/code&gt; (defined in &lt;a href=&quot;#property__TRIGGER_MAP&quot;&gt;_TRIGGER_MAP&lt;/a&gt; private property).</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;/dd&gt;</span>
<span class="cm">            * &lt;dt&gt;xyOffset &amp;#60;Number[]&amp;#62;&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;</span>
<span class="cm">            * A 2 element Array specifying the X and Y pixel amounts by which the Overlay should be offset from the aligned corner. e.g. [5,0] offsets the Overlay 5 pixels to the left, &lt;em&gt;after&lt;/em&gt; aligning the given context corners.</span>
<span class="cm">            * NOTE: If using this property and no triggers need to be defined, the arrayOfTriggerEvents property should be set to null to maintain correct array positions for the arguments. </span>
<span class="cm">            * &lt;/dd&gt;</span>
<span class="cm">            * &lt;/dl&gt;</span>
<span class="cm">            *</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * For example, setting this property to &lt;code&gt;[&quot;img1&quot;, &quot;tl&quot;, &quot;bl&quot;]&lt;/code&gt; will </span>
<span class="cm">            * align the Overlay&#39;s top left corner to the bottom left corner of the</span>
<span class="cm">            * context element with id &quot;img1&quot;.</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * Setting this property to &lt;code&gt;[&quot;img1&quot;, &quot;tl&quot;, &quot;bl&quot;, null, [0,5]&lt;/code&gt; will </span>
<span class="cm">            * align the Overlay&#39;s top left corner to the bottom left corner of the</span>
<span class="cm">            * context element with id &quot;img1&quot;, and then offset it by 5 pixels on the Y axis (providing a 5 pixel gap between the bottom of the context element and top of the overlay).</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * Adding the optional trigger values: &lt;code&gt;[&quot;img1&quot;, &quot;tl&quot;, &quot;bl&quot;, [&quot;beforeShow&quot;, &quot;windowResize&quot;], [0,5]]&lt;/code&gt;,</span>
<span class="cm">            * will re-align the overlay position, whenever the &quot;beforeShow&quot; or &quot;windowResize&quot; events are fired.</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            *</span>
<span class="cm">            * @config context</span>
<span class="cm">            * @type Array</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONTEXT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configContext</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONTEXT</span><span class="p">.</span><span class="nx">suppressEvent</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONTEXT</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * Determines whether or not the Overlay should be anchored </span>
<span class="cm">            * to the center of the viewport.</span>
<span class="cm">            * </span>
<span class="cm">            * &lt;p&gt;This property can be set to:&lt;/p&gt;</span>
<span class="cm">            * </span>
<span class="cm">            * &lt;dl&gt;</span>
<span class="cm">            * &lt;dt&gt;true&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;</span>
<span class="cm">            * To enable fixed center positioning</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * When enabled, the overlay will </span>
<span class="cm">            * be positioned in the center of viewport when initially displayed, and </span>
<span class="cm">            * will remain in the center of the viewport whenever the window is </span>
<span class="cm">            * scrolled or resized.</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;p&gt;</span>
<span class="cm">            * If the overlay is too big for the viewport, </span>
<span class="cm">            * it&#39;s top left corner will be aligned with the top left corner of the viewport.</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;/dd&gt;</span>
<span class="cm">            * &lt;dt&gt;false&lt;/dt&gt;</span>
<span class="cm">            * &lt;dd&gt;</span>
<span class="cm">            * To disable fixed center positioning.</span>
<span class="cm">            * &lt;p&gt;In this case the overlay can still be </span>
<span class="cm">            * centered as a one-off operation, by invoking the &lt;code&gt;center()&lt;/code&gt; method,</span>
<span class="cm">            * however it will not remain centered when the window is scrolled/resized.</span>
<span class="cm">            * &lt;/dd&gt;</span>
<span class="cm">            * &lt;dt&gt;&quot;contained&quot;&lt;dt&gt;</span>
<span class="cm">            * &lt;dd&gt;To enable fixed center positioning, as with the &lt;code&gt;true&lt;/code&gt; option.</span>
<span class="cm">            * &lt;p&gt;However, unlike setting the property to &lt;code&gt;true&lt;/code&gt;, </span>
<span class="cm">            * when the property is set to &lt;code&gt;&quot;contained&quot;&lt;/code&gt;, if the overlay is </span>
<span class="cm">            * too big for the viewport, it will not get automatically centered when the </span>
<span class="cm">            * user scrolls or resizes the window (until the window is large enough to contain the </span>
<span class="cm">            * overlay). This is useful in cases where the Overlay has both header and footer </span>
<span class="cm">            * UI controls which the user may need to access.</span>
<span class="cm">            * &lt;/p&gt;</span>
<span class="cm">            * &lt;/dd&gt;</span>
<span class="cm">            * &lt;/dl&gt;</span>
<span class="cm">            *</span>
<span class="cm">            * @config fixedcenter</span>
<span class="cm">            * @type Boolean | String</span>
<span class="cm">            * @default false</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">FIXED_CENTER</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configFixedCenter</span><span class="p">,</span>
                <span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">FIXED_CENTER</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">FIXED_CENTER</span><span class="p">.</span><span class="nx">validator</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">FIXED_CENTER</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>
    
            <span class="cm">/**</span>
<span class="cm">            * CSS width of the Overlay.</span>
<span class="cm">            * @config width</span>
<span class="cm">            * @type String</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">WIDTH</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configWidth</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">WIDTH</span><span class="p">.</span><span class="nx">suppressEvent</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">WIDTH</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * CSS height of the Overlay.</span>
<span class="cm">            * @config height</span>
<span class="cm">            * @type String</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">HEIGHT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configHeight</span><span class="p">,</span> 
                <span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">HEIGHT</span><span class="p">.</span><span class="nx">suppressEvent</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">HEIGHT</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * Standard module element which should auto fill out the height of the Overlay if the height config property is set.</span>
<span class="cm">            * Supported values are &quot;header&quot;, &quot;body&quot;, &quot;footer&quot;.</span>
<span class="cm">            *</span>
<span class="cm">            * @config autofillheight</span>
<span class="cm">            * @type String</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configAutoFillHeight</span><span class="p">,</span> 
                <span class="nx">value</span> <span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span>
                <span class="nx">validator</span> <span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">_validateAutoFill</span><span class="p">,</span>
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * CSS z-index of the Overlay.</span>
<span class="cm">            * @config zIndex</span>
<span class="cm">            * @type Number</span>
<span class="cm">            * @default null</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">ZINDEX</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configzIndex</span><span class="p">,</span>
                <span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">ZINDEX</span><span class="p">.</span><span class="nx">value</span>
            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * True if the Overlay should be prevented from being positioned </span>
<span class="cm">            * out of the viewport.</span>
<span class="cm">            * @config constraintoviewport</span>
<span class="cm">            * @type Boolean</span>
<span class="cm">            * @default false</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>

                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configConstrainToViewport</span><span class="p">,</span> 
                <span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="p">.</span><span class="nx">validator</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="p">.</span><span class="nx">supercedes</span>

            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * @config iframe</span>
<span class="cm">            * @description Boolean indicating whether or not the Overlay should </span>
<span class="cm">            * have an IFRAME shim; used to prevent SELECT elements from </span>
<span class="cm">            * poking through an Overlay instance in IE6.  When set to &quot;true&quot;, </span>
<span class="cm">            * the iframe shim is created when the Overlay instance is intially</span>
<span class="cm">            * made visible.</span>
<span class="cm">            * @type Boolean</span>
<span class="cm">            * @default true for IE6 and below, false for all other browsers.</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>

                <span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">configIframe</span><span class="p">,</span> 
                <span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">validator</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">IFRAME</span><span class="p">.</span><span class="nx">supercedes</span>

            <span class="p">});</span>

            <span class="cm">/**</span>
<span class="cm">            * @config preventcontextoverlap</span>
<span class="cm">            * @description Boolean indicating whether or not the Overlay should overlap its </span>
<span class="cm">            * context element (defined using the &quot;context&quot; configuration property) when the </span>
<span class="cm">            * &quot;constraintoviewport&quot; configuration property is set to &quot;true&quot;.</span>
<span class="cm">            * @type Boolean</span>
<span class="cm">            * @default false</span>
<span class="cm">            */</span>
            <span class="nx">cfg</span><span class="p">.</span><span class="nx">addProperty</span><span class="p">(</span><span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="p">.</span><span class="nx">key</span><span class="p">,</span> <span class="p">{</span>
                <span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="p">.</span><span class="nx">value</span><span class="p">,</span> 
                <span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="p">.</span><span class="nx">validator</span><span class="p">,</span> 
                <span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="p">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="p">.</span><span class="nx">supercedes</span>
            <span class="p">});</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Moves the Overlay to the specified position. This function is  </span>
<span class="cm">        * identical to calling this.cfg.setProperty(&quot;xy&quot;, [x,y]);</span>
<span class="cm">        * @method moveTo</span>
<span class="cm">        * @param {Number} x The Overlay&#39;s new x position</span>
<span class="cm">        * @param {Number} y The Overlay&#39;s new y position</span>
<span class="cm">        */</span>
        <span class="nx">moveTo</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">,</span> <span class="p">[</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Adds a CSS class (&quot;hide-scrollbars&quot;) and removes a CSS class </span>
<span class="cm">        * (&quot;show-scrollbars&quot;) to the Overlay to fix a bug in Gecko on Mac OS X </span>
<span class="cm">        * (https://bugzilla.mozilla.org/show_bug.cgi?id=187435)</span>
<span class="cm">        * @method hideMacGeckoScrollbars</span>
<span class="cm">        */</span>
        <span class="nx">hideMacGeckoScrollbars</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">replaceClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;show-scrollbars&quot;</span><span class="p">,</span> <span class="s2">&quot;hide-scrollbars&quot;</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Adds a CSS class (&quot;show-scrollbars&quot;) and removes a CSS class </span>
<span class="cm">        * (&quot;hide-scrollbars&quot;) to the Overlay to fix a bug in Gecko on Mac OS X </span>
<span class="cm">        * (https://bugzilla.mozilla.org/show_bug.cgi?id=187435)</span>
<span class="cm">        * @method showMacGeckoScrollbars</span>
<span class="cm">        */</span>
        <span class="nx">showMacGeckoScrollbars</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">replaceClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;hide-scrollbars&quot;</span><span class="p">,</span> <span class="s2">&quot;show-scrollbars&quot;</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Internal implementation to set the visibility of the overlay in the DOM.</span>
<span class="cm">         *</span>
<span class="cm">         * @method _setDomVisibility</span>
<span class="cm">         * @param {boolean} visible Whether to show or hide the Overlay&#39;s outer element</span>
<span class="cm">         * @protected</span>
<span class="cm">         */</span>
        <span class="nx">_setDomVisibility</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">show</span><span class="p">)</span> <span class="p">{</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;visibility&quot;</span><span class="p">,</span> <span class="p">(</span><span class="nx">show</span><span class="p">)</span> <span class="o">?</span> <span class="s2">&quot;visible&quot;</span> <span class="o">:</span> <span class="s2">&quot;hidden&quot;</span><span class="p">);</span>
            <span class="kd">var</span> <span class="nx">hiddenClass</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_HIDDEN</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">show</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">hiddenClass</span><span class="p">);</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">hiddenClass</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="c1">// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //</span>
        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;visible&quot; property is </span>
<span class="cm">        * changed.  This method is responsible for firing showEvent</span>
<span class="cm">        * and hideEvent.</span>
<span class="cm">        * @method configVisible</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration</span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configVisible</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">visible</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">currentVis</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;visibility&quot;</span><span class="p">),</span>
                <span class="nx">effects</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_cachedEffects</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">_createEffects</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;effect&quot;</span><span class="p">)),</span>
                <span class="nx">isMacGecko</span> <span class="o">=</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">&quot;mac&quot;</span> <span class="o">&amp;&amp;</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">gecko</span><span class="p">),</span>
                <span class="nx">alreadySubscribed</span> <span class="o">=</span> <span class="nx">Config</span><span class="p">.</span><span class="nx">alreadySubscribed</span><span class="p">,</span>
                <span class="nx">ei</span><span class="p">,</span> <span class="nx">e</span><span class="p">,</span> <span class="nx">j</span><span class="p">,</span> <span class="nx">k</span><span class="p">,</span> <span class="nx">h</span><span class="p">,</span>
                <span class="nx">nEffectInstances</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">&quot;inherit&quot;</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">e</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>

                <span class="k">while</span> <span class="p">(</span><span class="nx">e</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">!=</span> <span class="mi">9</span> <span class="o">&amp;&amp;</span> <span class="nx">e</span><span class="p">.</span><span class="nx">nodeType</span> <span class="o">!=</span> <span class="mi">11</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">currentVis</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="s2">&quot;visibility&quot;</span><span class="p">);</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">!=</span> <span class="s2">&quot;inherit&quot;</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">break</span><span class="p">;</span>
                    <span class="p">}</span>

                    <span class="nx">e</span> <span class="o">=</span> <span class="nx">e</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">&quot;inherit&quot;</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">currentVis</span> <span class="o">=</span> <span class="s2">&quot;visible&quot;</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Show</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">isMacGecko</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">showMacGeckoScrollbars</span><span class="p">();</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">effects</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Animate in</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">visible</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Animate in if not showing</span>

                         <span class="c1">// Fading out is a bit of a hack, but didn&#39;t want to risk doing </span>
                         <span class="c1">// something broader (e.g a generic this._animatingOut) for 2.9.0</span>

                        <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">!=</span> <span class="s2">&quot;visible&quot;</span> <span class="o">||</span> <span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">&quot;&quot;</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">_fadingOut</span><span class="p">)</span> <span class="p">{</span>
                            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>

                                <span class="nx">nEffectInstances</span> <span class="o">=</span> <span class="nx">effects</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>

                                <span class="k">for</span> <span class="p">(</span><span class="nx">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="o">&lt;</span> <span class="nx">nEffectInstances</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                                    <span class="nx">ei</span> <span class="o">=</span> <span class="nx">effects</span><span class="p">[</span><span class="nx">j</span><span class="p">];</span>
                                    <span class="k">if</span> <span class="p">(</span><span class="nx">j</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="nx">ei</span><span class="p">.</span><span class="nx">animateInCompleteEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">))</span> <span class="p">{</span>
                                        <span class="nx">ei</span><span class="p">.</span><span class="nx">animateInCompleteEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                                    <span class="p">}</span>
                                    <span class="nx">ei</span><span class="p">.</span><span class="nx">animateIn</span><span class="p">();</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="c1">// Show</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">!=</span> <span class="s2">&quot;visible&quot;</span> <span class="o">||</span> <span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">_setDomVisibility</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
                        <span class="p">}</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_setDomVisibility</span><span class="p">(</span><span class="kc">true</span><span class="p">);</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="c1">// Hide</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">isMacGecko</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">hideMacGeckoScrollbars</span><span class="p">();</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">effects</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Animate out if showing</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">&quot;visible&quot;</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">_fadingIn</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeHideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
                            <span class="nx">nEffectInstances</span> <span class="o">=</span> <span class="nx">effects</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
                            <span class="k">for</span> <span class="p">(</span><span class="nx">k</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">k</span> <span class="o">&lt;</span> <span class="nx">nEffectInstances</span><span class="p">;</span> <span class="nx">k</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                                <span class="nx">h</span> <span class="o">=</span> <span class="nx">effects</span><span class="p">[</span><span class="nx">k</span><span class="p">];</span>
        
                                <span class="k">if</span> <span class="p">(</span><span class="nx">k</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="nx">h</span><span class="p">.</span><span class="nx">animateOutCompleteEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">))</span> <span class="p">{</span>
                                    <span class="nx">h</span><span class="p">.</span><span class="nx">animateOutCompleteEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                                <span class="p">}</span>
                                <span class="nx">h</span><span class="p">.</span><span class="nx">animateOut</span><span class="p">();</span>
                            <span class="p">}</span>
                        <span class="p">}</span>

                    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_setDomVisibility</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span>
                    <span class="p">}</span>

                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="c1">// Simple hide</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">&quot;visible&quot;</span> <span class="o">||</span> <span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeHideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">())</span> <span class="p">{</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">_setDomVisibility</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span>
                            <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">();</span>
                        <span class="p">}</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_setDomVisibility</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Fixed center event handler used for centering on scroll/resize, but only if </span>
<span class="cm">        * the overlay is visible and, if &quot;fixedcenter&quot; is set to &quot;contained&quot;, only if </span>
<span class="cm">        * the overlay fits within the viewport.</span>
<span class="cm">        *</span>
<span class="cm">        * @method doCenterOnDOMEvent</span>
<span class="cm">        */</span>
        <span class="nx">doCenterOnDOMEvent</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
                <span class="nx">fc</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;fixedcenter&quot;</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;visible&quot;</span><span class="p">))</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">fc</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">fc</span> <span class="o">!==</span> <span class="nx">_CONTAINED</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">fitsInViewport</span><span class="p">()))</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">center</span><span class="p">();</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Determines if the Overlay (including the offset value defined by Overlay.VIEWPORT_OFFSET) </span>
<span class="cm">         * will fit entirely inside the viewport, in both dimensions - width and height.</span>
<span class="cm">         * </span>
<span class="cm">         * @method fitsInViewport</span>
<span class="cm">         * @return boolean true if the Overlay will fit, false if not</span>
<span class="cm">         */</span>
        <span class="nx">fitsInViewport</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">nViewportOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="p">,</span>
                <span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span>
                <span class="nx">elementWidth</span> <span class="o">=</span> <span class="nx">element</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">,</span>
                <span class="nx">elementHeight</span> <span class="o">=</span> <span class="nx">element</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span>
                <span class="nx">viewportWidth</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">(),</span>
                <span class="nx">viewportHeight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">();</span>

            <span class="k">return</span> <span class="p">((</span><span class="nx">elementWidth</span> <span class="o">+</span> <span class="nx">nViewportOffset</span> <span class="o">&lt;</span> <span class="nx">viewportWidth</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">elementHeight</span> <span class="o">+</span> <span class="nx">nViewportOffset</span> <span class="o">&lt;</span> <span class="nx">viewportHeight</span><span class="p">));</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;fixedcenter&quot; property </span>
<span class="cm">        * is changed.</span>
<span class="cm">        * @method configFixedCenter</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configFixedCenter</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">alreadySubscribed</span> <span class="o">=</span> <span class="nx">Config</span><span class="p">.</span><span class="nx">alreadySubscribed</span><span class="p">,</span>
                <span class="nx">windowResizeEvent</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeEvent</span><span class="p">,</span>
                <span class="nx">windowScrollEvent</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollEvent</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">center</span><span class="p">();</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">center</span><span class="p">))</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">center</span><span class="p">);</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="nx">windowResizeEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">windowResizeEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="nx">windowScrollEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">windowScrollEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                <span class="p">}</span>

            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">center</span><span class="p">);</span>

                <span class="nx">windowResizeEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
                <span class="nx">windowScrollEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;height&quot; property is changed.</span>
<span class="cm">        * @method configHeight</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configHeight</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">;</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s2">&quot;height&quot;</span><span class="p">,</span> <span class="nx">height</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * The default event handler fired when the &quot;autofillheight&quot; property is changed.</span>
<span class="cm">         * @method configAutoFillHeight</span>
<span class="cm">         *</span>
<span class="cm">         * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">         * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">         * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">         * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">         * this will usually equal the owner.</span>
<span class="cm">         */</span>
        <span class="nx">configAutoFillHeight</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">fillEl</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">,</span>
                <span class="nx">autoFillHeight</span> <span class="o">=</span> <span class="s2">&quot;autofillheight&quot;</span><span class="p">,</span>
                <span class="nx">height</span> <span class="o">=</span> <span class="s2">&quot;height&quot;</span><span class="p">,</span>
                <span class="nx">currEl</span> <span class="o">=</span> <span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">autoFillHeight</span><span class="p">),</span>
                <span class="nx">autoFill</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_autoFillOnHeightChange</span><span class="p">;</span>

            <span class="nx">cfg</span><span class="p">.</span><span class="nx">unsubscribeFromConfigEvent</span><span class="p">(</span><span class="nx">height</span><span class="p">,</span> <span class="nx">autoFill</span><span class="p">);</span>
            <span class="nx">Module</span><span class="p">.</span><span class="nx">textResizeEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="nx">autoFill</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">changeContentEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="nx">autoFill</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">currEl</span> <span class="o">&amp;&amp;</span> <span class="nx">fillEl</span> <span class="o">!==</span> <span class="nx">currEl</span> <span class="o">&amp;&amp;</span> <span class="k">this</span><span class="p">[</span><span class="nx">currEl</span><span class="p">])</span> <span class="p">{</span>
                <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="k">this</span><span class="p">[</span><span class="nx">currEl</span><span class="p">],</span> <span class="nx">height</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">fillEl</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">fillEl</span> <span class="o">=</span> <span class="nx">Lang</span><span class="p">.</span><span class="nx">trim</span><span class="p">(</span><span class="nx">fillEl</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">());</span>

                <span class="nx">cfg</span><span class="p">.</span><span class="nx">subscribeToConfigEvent</span><span class="p">(</span><span class="nx">height</span><span class="p">,</span> <span class="nx">autoFill</span><span class="p">,</span> <span class="k">this</span><span class="p">[</span><span class="nx">fillEl</span><span class="p">],</span> <span class="k">this</span><span class="p">);</span>
                <span class="nx">Module</span><span class="p">.</span><span class="nx">textResizeEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">autoFill</span><span class="p">,</span> <span class="k">this</span><span class="p">[</span><span class="nx">fillEl</span><span class="p">],</span> <span class="k">this</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">changeContentEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">autoFill</span><span class="p">,</span> <span class="k">this</span><span class="p">[</span><span class="nx">fillEl</span><span class="p">],</span> <span class="k">this</span><span class="p">);</span>

                <span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">autoFillHeight</span><span class="p">,</span> <span class="nx">fillEl</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;width&quot; property is changed.</span>
<span class="cm">        * @method configWidth</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configWidth</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">;</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s2">&quot;width&quot;</span><span class="p">,</span> <span class="nx">width</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;zIndex&quot; property is changed.</span>
<span class="cm">        * @method configzIndex</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configzIndex</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">zIndex</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">zIndex</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">zIndex</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">);</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">zIndex</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">zIndex</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">zIndex</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">)</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">zIndex</span> <span class="o">&lt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">zIndex</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">,</span> <span class="nx">zIndex</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;zIndex&quot;</span><span class="p">,</span> <span class="nx">zIndex</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">stackIframe</span><span class="p">();</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;xy&quot; property is changed.</span>
<span class="cm">        * @method configXY</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configXY</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">x</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="nx">x</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="nx">y</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>

            <span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">);</span>
            <span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">);</span>

            <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">log</span><span class="p">((</span><span class="s2">&quot;xy: &quot;</span> <span class="o">+</span> <span class="p">[</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]),</span> <span class="s2">&quot;iframe&quot;</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">moveEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;x&quot; property is changed.</span>
<span class="cm">        * @method configX</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configX</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>

            <span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">);</span>
            <span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">);</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setX</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">,</span> <span class="p">[</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">],</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">moveEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;y&quot; property is changed.</span>
<span class="cm">        * @method configY</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configY</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">),</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>

            <span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">);</span>
            <span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">);</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">setY</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">,</span> <span class="p">[</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">],</span> <span class="kc">true</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">moveEvent</span><span class="p">.</span><span class="nx">fire</span><span class="p">([</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">]);</span>
        <span class="p">},</span>
        
        <span class="cm">/**</span>
<span class="cm">        * Shows the iframe shim, if it has been enabled.</span>
<span class="cm">        * @method showIframe</span>
<span class="cm">        */</span>
        <span class="nx">showIframe</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">oIFrame</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span>
                <span class="nx">oParentNode</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">oIFrame</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">oParentNode</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">oParentNode</span> <span class="o">!=</span> <span class="nx">oIFrame</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">_addToParent</span><span class="p">(</span><span class="nx">oParentNode</span><span class="p">,</span> <span class="nx">oIFrame</span><span class="p">);</span>
                <span class="p">}</span>
                <span class="nx">oIFrame</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;block&quot;</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Hides the iframe shim, if it has been enabled.</span>
<span class="cm">        * @method hideIframe</span>
<span class="cm">        */</span>
        <span class="nx">hideIframe</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;none&quot;</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Syncronizes the size and position of iframe shim to that of its </span>
<span class="cm">        * corresponding Overlay instance.</span>
<span class="cm">        * @method syncIframe</span>
<span class="cm">        */</span>
        <span class="nx">syncIframe</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">oIFrame</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span>
                <span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span>
                <span class="nx">nOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">IFRAME_OFFSET</span><span class="p">,</span>
                <span class="nx">nDimensionOffset</span> <span class="o">=</span> <span class="p">(</span><span class="nx">nOffset</span> <span class="o">*</span> <span class="mi">2</span><span class="p">),</span>
                <span class="nx">aXY</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">oIFrame</span><span class="p">)</span> <span class="p">{</span>
                <span class="c1">// Size &lt;iframe&gt;</span>
                <span class="nx">oIFrame</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="p">(</span><span class="nx">oElement</span><span class="p">.</span><span class="nx">offsetWidth</span> <span class="o">+</span> <span class="nx">nDimensionOffset</span> <span class="o">+</span> <span class="s2">&quot;px&quot;</span><span class="p">);</span>
                <span class="nx">oIFrame</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">height</span> <span class="o">=</span> <span class="p">(</span><span class="nx">oElement</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o">+</span> <span class="nx">nDimensionOffset</span> <span class="o">+</span> <span class="s2">&quot;px&quot;</span><span class="p">);</span>

                <span class="c1">// Position &lt;iframe&gt;</span>
                <span class="nx">aXY</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">);</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">aXY</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="nb">isNaN</span><span class="p">(</span><span class="nx">aXY</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">aXY</span><span class="p">[</span><span class="mi">1</span><span class="p">])))</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">syncPosition</span><span class="p">();</span>
                    <span class="nx">aXY</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">);</span>
                <span class="p">}</span>
                <span class="nx">Dom</span><span class="p">.</span><span class="nx">setXY</span><span class="p">(</span><span class="nx">oIFrame</span><span class="p">,</span> <span class="p">[(</span><span class="nx">aXY</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="nx">nOffset</span><span class="p">),</span> <span class="p">(</span><span class="nx">aXY</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="nx">nOffset</span><span class="p">)]);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Sets the zindex of the iframe shim, if it exists, based on the zindex of</span>
<span class="cm">         * the Overlay element. The zindex of the iframe is set to be one less </span>
<span class="cm">         * than the Overlay element&#39;s zindex.</span>
<span class="cm">         * </span>
<span class="cm">         * &lt;p&gt;NOTE: This method will not bump up the zindex of the Overlay element</span>
<span class="cm">         * to ensure that the iframe shim has a non-negative zindex.</span>
<span class="cm">         * If you require the iframe zindex to be 0 or higher, the zindex of </span>
<span class="cm">         * the Overlay element should be set to a value greater than 0, before </span>
<span class="cm">         * this method is called.</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * @method stackIframe</span>
<span class="cm">         */</span>
        <span class="nx">stackIframe</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">overlayZ</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">);</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isUndefined</span><span class="p">(</span><span class="nx">overlayZ</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nb">isNaN</span><span class="p">(</span><span class="nx">overlayZ</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">,</span> <span class="p">(</span><span class="nx">overlayZ</span> <span class="o">-</span> <span class="mi">1</span><span class="p">));</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;iframe&quot; property is changed.</span>
<span class="cm">        * @method configIframe</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configIframe</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">bIFrame</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

            <span class="kd">function</span> <span class="nx">createIFrame</span><span class="p">()</span> <span class="p">{</span>

                <span class="kd">var</span> <span class="nx">oIFrame</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">,</span>
                    <span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span>
                    <span class="nx">oParent</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">oIFrame</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">m_oIFrameTemplate</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">m_oIFrameTemplate</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>

                        <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">isSecure</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">IFRAME_SRC</span><span class="p">;</span>
                        <span class="p">}</span>

                        <span class="cm">/*</span>
<span class="cm">                            Set the opacity of the &lt;iframe&gt; to 0 so that it </span>
<span class="cm">                            doesn&#39;t modify the opacity of any transparent </span>
<span class="cm">                            elements that may be on top of it (like a shadow).</span>
<span class="cm">                        */</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">filter</span> <span class="o">=</span> <span class="s2">&quot;alpha(opacity=0)&quot;</span><span class="p">;</span>
                            <span class="cm">/*</span>
<span class="cm">                                 Need to set the &quot;frameBorder&quot; property to 0 </span>
<span class="cm">                                 supress the default &lt;iframe&gt; border in IE.  </span>
<span class="cm">                                 Setting the CSS &quot;border&quot; property alone </span>
<span class="cm">                                 doesn&#39;t supress it.</span>
<span class="cm">                            */</span>
                            <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">frameBorder</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
                        <span class="p">}</span>
                        <span class="k">else</span> <span class="p">{</span>
                            <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">opacity</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="p">;</span>
                        <span class="p">}</span>

                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s2">&quot;absolute&quot;</span><span class="p">;</span>
                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">border</span> <span class="o">=</span> <span class="s2">&quot;none&quot;</span><span class="p">;</span>
                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">margin</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="p">;</span>
                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">padding</span> <span class="o">=</span> <span class="s2">&quot;0&quot;</span><span class="p">;</span>
                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">&quot;none&quot;</span><span class="p">;</span>
                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">tabIndex</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
                        <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">className</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_IFRAME</span><span class="p">;</span>
                    <span class="p">}</span>

                    <span class="nx">oIFrame</span> <span class="o">=</span> <span class="nx">m_oIFrameTemplate</span><span class="p">.</span><span class="nx">cloneNode</span><span class="p">(</span><span class="kc">false</span><span class="p">);</span>
                    <span class="nx">oIFrame</span><span class="p">.</span><span class="nx">id</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span> <span class="o">+</span> <span class="s2">&quot;_f&quot;</span><span class="p">;</span>
                    <span class="nx">oParent</span> <span class="o">=</span> <span class="nx">oElement</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>

                    <span class="kd">var</span> <span class="nx">parentNode</span> <span class="o">=</span> <span class="nx">oParent</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">;</span>

                    <span class="k">this</span><span class="p">.</span><span class="nx">_addToParent</span><span class="p">(</span><span class="nx">parentNode</span><span class="p">,</span> <span class="nx">oIFrame</span><span class="p">);</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="nx">oIFrame</span><span class="p">;</span>
                <span class="p">}</span>

                <span class="cm">/*</span>
<span class="cm">                     Show the &lt;iframe&gt; before positioning it since the &quot;setXY&quot; </span>
<span class="cm">                     method of DOM requires the element be in the document </span>
<span class="cm">                     and visible.</span>
<span class="cm">                */</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">showIframe</span><span class="p">();</span>

                <span class="cm">/*</span>
<span class="cm">                     Syncronize the size and position of the &lt;iframe&gt; to that </span>
<span class="cm">                     of the Overlay.</span>
<span class="cm">                */</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">syncIframe</span><span class="p">();</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">stackIframe</span><span class="p">();</span>

                <span class="c1">// Add event listeners to update the &lt;iframe&gt; when necessary</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">_hasIframeEventListeners</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">showIframe</span><span class="p">);</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hideIframe</span><span class="p">);</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">changeContentEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">syncIframe</span><span class="p">);</span>

                    <span class="k">this</span><span class="p">.</span><span class="nx">_hasIframeEventListeners</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="kd">function</span> <span class="nx">onBeforeShow</span><span class="p">()</span> <span class="p">{</span>
                <span class="nx">createIFrame</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="nx">onBeforeShow</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_iframeDeferred</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">bIFrame</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// &lt;iframe&gt; shim is enabled</span>

                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;visible&quot;</span><span class="p">))</span> <span class="p">{</span>
                    <span class="nx">createIFrame</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">_iframeDeferred</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="nx">onBeforeShow</span><span class="p">);</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_iframeDeferred</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>

            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>    <span class="c1">// &lt;iframe&gt; shim is disabled</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">hideIframe</span><span class="p">();</span>

                <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_hasIframeEventListeners</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">showEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">showIframe</span><span class="p">);</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">hideEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">hideIframe</span><span class="p">);</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">changeContentEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">syncIframe</span><span class="p">);</span>

                    <span class="k">this</span><span class="p">.</span><span class="nx">_hasIframeEventListeners</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Set&#39;s the container&#39;s XY value from DOM if not already set.</span>
<span class="cm">         * </span>
<span class="cm">         * Differs from syncPosition, in that the XY value is only sync&#39;d with DOM if </span>
<span class="cm">         * not already set. The method also refire&#39;s the XY config property event, so any</span>
<span class="cm">         * beforeMove, Move event listeners are invoked.</span>
<span class="cm">         * </span>
<span class="cm">         * @method _primeXYFromDOM</span>
<span class="cm">         * @protected</span>
<span class="cm">         */</span>
        <span class="nx">_primeXYFromDOM</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">YAHOO</span><span class="p">.</span><span class="nx">lang</span><span class="p">.</span><span class="nx">isUndefined</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">)))</span> <span class="p">{</span>
                <span class="c1">// Set CFG XY based on DOM XY</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">syncPosition</span><span class="p">();</span>
                <span class="c1">// Account for XY being set silently in syncPosition (no moveTo fired/called)</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_primeXYFromDOM</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;constraintoviewport&quot; </span>
<span class="cm">        * property is changed.</span>
<span class="cm">        * @method configConstrainToViewport</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for </span>
<span class="cm">        * the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configConstrainToViewport</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">Config</span><span class="p">.</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">enforceConstraints</span><span class="p">,</span> <span class="k">this</span><span class="p">))</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">enforceConstraints</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                <span class="p">}</span>
                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">Config</span><span class="p">.</span><span class="nx">alreadySubscribed</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_primeXYFromDOM</span><span class="p">))</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">subscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_primeXYFromDOM</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">beforeShowEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_primeXYFromDOM</span><span class="p">);</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">beforeMoveEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">enforceConstraints</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

         <span class="cm">/**</span>
<span class="cm">        * The default event handler fired when the &quot;context&quot; property</span>
<span class="cm">        * is changed.</span>
<span class="cm">        *</span>
<span class="cm">        * @method configContext</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">configContext</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">contextArgs</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">contextEl</span><span class="p">,</span>
                <span class="nx">elementMagnetCorner</span><span class="p">,</span>
                <span class="nx">contextMagnetCorner</span><span class="p">,</span>
                <span class="nx">triggers</span><span class="p">,</span>
                <span class="nx">offset</span><span class="p">,</span>
                <span class="nx">defTriggers</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">CONTEXT_TRIGGERS</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">contextArgs</span><span class="p">)</span> <span class="p">{</span>

                <span class="nx">contextEl</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                <span class="nx">elementMagnetCorner</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
                <span class="nx">contextMagnetCorner</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                <span class="nx">triggers</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">3</span><span class="p">];</span>
                <span class="nx">offset</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">defTriggers</span> <span class="o">&amp;&amp;</span> <span class="nx">defTriggers</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">triggers</span> <span class="o">=</span> <span class="p">(</span><span class="nx">triggers</span> <span class="o">||</span> <span class="p">[]).</span><span class="nx">concat</span><span class="p">(</span><span class="nx">defTriggers</span><span class="p">);</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">contextEl</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="k">typeof</span> <span class="nx">contextEl</span> <span class="o">==</span> <span class="s2">&quot;string&quot;</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;context&quot;</span><span class="p">,</span> <span class="p">[</span>
                                <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="nx">contextEl</span><span class="p">),</span> 
                                <span class="nx">elementMagnetCorner</span><span class="p">,</span>
                                <span class="nx">contextMagnetCorner</span><span class="p">,</span>
                                <span class="nx">triggers</span><span class="p">,</span>
                                <span class="nx">offset</span><span class="p">],</span>
                                <span class="kc">true</span><span class="p">);</span>
                    <span class="p">}</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">elementMagnetCorner</span> <span class="o">&amp;&amp;</span> <span class="nx">contextMagnetCorner</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">align</span><span class="p">(</span><span class="nx">elementMagnetCorner</span><span class="p">,</span> <span class="nx">contextMagnetCorner</span><span class="p">,</span> <span class="nx">offset</span><span class="p">);</span>
                    <span class="p">}</span>

                    <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_contextTriggers</span><span class="p">)</span> <span class="p">{</span>
                        <span class="c1">// Unsubscribe Old Set</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_processTriggers</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_contextTriggers</span><span class="p">,</span> <span class="nx">_UNSUBSCRIBE</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_alignOnTrigger</span><span class="p">);</span>
                    <span class="p">}</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">triggers</span><span class="p">)</span> <span class="p">{</span>
                        <span class="c1">// Subscribe New Set</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_processTriggers</span><span class="p">(</span><span class="nx">triggers</span><span class="p">,</span> <span class="nx">_SUBSCRIBE</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_alignOnTrigger</span><span class="p">);</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">_contextTriggers</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Custom Event handler for context alignment triggers. Invokes the align method</span>
<span class="cm">         * </span>
<span class="cm">         * @method _alignOnTrigger</span>
<span class="cm">         * @protected</span>
<span class="cm">         * </span>
<span class="cm">         * @param {String} type The event type (not used by the default implementation)</span>
<span class="cm">         * @param {Any[]} args The array of arguments for the trigger event (not used by the default implementation)</span>
<span class="cm">         */</span>
        <span class="nx">_alignOnTrigger</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">align</span><span class="p">();</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Helper method to locate the custom event instance for the event name string</span>
<span class="cm">         * passed in. As a convenience measure, any custom events passed in are returned.</span>
<span class="cm">         *</span>
<span class="cm">         * @method _findTriggerCE</span>
<span class="cm">         * @private</span>
<span class="cm">         *</span>
<span class="cm">         * @param {String|CustomEvent} t Either a CustomEvent, or event type (e.g. &quot;windowScroll&quot;) for which a </span>
<span class="cm">         * custom event instance needs to be looked up from the Overlay._TRIGGER_MAP.</span>
<span class="cm">         */</span>
        <span class="nx">_findTriggerCE</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">t</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">tce</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">t</span> <span class="k">instanceof</span> <span class="nx">CustomEvent</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">tce</span> <span class="o">=</span> <span class="nx">t</span><span class="p">;</span>
            <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">Overlay</span><span class="p">.</span><span class="nx">_TRIGGER_MAP</span><span class="p">[</span><span class="nx">t</span><span class="p">])</span> <span class="p">{</span>
                <span class="nx">tce</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">_TRIGGER_MAP</span><span class="p">[</span><span class="nx">t</span><span class="p">];</span>
            <span class="p">}</span>
            <span class="k">return</span> <span class="nx">tce</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Utility method that subscribes or unsubscribes the given </span>
<span class="cm">         * function from the list of trigger events provided.</span>
<span class="cm">         *</span>
<span class="cm">         * @method _processTriggers</span>
<span class="cm">         * @protected </span>
<span class="cm">         *</span>
<span class="cm">         * @param {Array[String|CustomEvent]} triggers An array of either CustomEvents, event type strings </span>
<span class="cm">         * (e.g. &quot;beforeShow&quot;, &quot;windowScroll&quot;) to/from which the provided function should be </span>
<span class="cm">         * subscribed/unsubscribed respectively.</span>
<span class="cm">         *</span>
<span class="cm">         * @param {String} mode Either &quot;subscribe&quot; or &quot;unsubscribe&quot;, specifying whether or not</span>
<span class="cm">         * we are subscribing or unsubscribing trigger listeners</span>
<span class="cm">         * </span>
<span class="cm">         * @param {Function} fn The function to be subscribed/unsubscribed to/from the trigger event.</span>
<span class="cm">         * Context is always set to the overlay instance, and no additional object argument </span>
<span class="cm">         * get passed to the subscribed function.</span>
<span class="cm">         */</span>
        <span class="nx">_processTriggers</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">triggers</span><span class="p">,</span> <span class="nx">mode</span><span class="p">,</span> <span class="nx">fn</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">t</span><span class="p">,</span> <span class="nx">tce</span><span class="p">;</span>

            <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">t</span> <span class="o">=</span> <span class="nx">triggers</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
                <span class="nx">tce</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_findTriggerCE</span><span class="p">(</span><span class="nx">t</span><span class="p">);</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">tce</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">tce</span><span class="p">[</span><span class="nx">mode</span><span class="p">](</span><span class="nx">fn</span><span class="p">,</span> <span class="k">this</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="k">this</span><span class="p">[</span><span class="nx">mode</span><span class="p">](</span><span class="nx">t</span><span class="p">,</span> <span class="nx">fn</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="c1">// END BUILT-IN PROPERTY EVENT HANDLERS //</span>
        <span class="cm">/**</span>
<span class="cm">        * Aligns the Overlay to its context element using the specified corner </span>
<span class="cm">        * points (represented by the constants TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, </span>
<span class="cm">        * and BOTTOM_RIGHT.</span>
<span class="cm">        * @method align</span>
<span class="cm">        * @param {String} elementAlign  The String representing the corner of </span>
<span class="cm">        * the Overlay that should be aligned to the context element</span>
<span class="cm">        * @param {String} contextAlign  The corner of the context element </span>
<span class="cm">        * that the elementAlign corner should stick to.</span>
<span class="cm">        * @param {Number[]} xyOffset Optional. A 2 element array specifying the x and y pixel offsets which should be applied</span>
<span class="cm">        * after aligning the element and context corners. For example, passing in [5, -10] for this value, would offset the </span>
<span class="cm">        * Overlay by 5 pixels along the X axis (horizontally) and -10 pixels along the Y axis (vertically) after aligning the specified corners.</span>
<span class="cm">        */</span>
        <span class="nx">align</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">elementAlign</span><span class="p">,</span> <span class="nx">contextAlign</span><span class="p">,</span> <span class="nx">xyOffset</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">contextArgs</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;context&quot;</span><span class="p">),</span>
                <span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span>
                <span class="nx">context</span><span class="p">,</span>
                <span class="nx">element</span><span class="p">,</span>
                <span class="nx">contextRegion</span><span class="p">;</span>

            <span class="kd">function</span> <span class="nx">doAlign</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="nx">h</span><span class="p">)</span> <span class="p">{</span>

                <span class="kd">var</span> <span class="nx">alignX</span> <span class="o">=</span> <span class="kc">null</span><span class="p">,</span> <span class="nx">alignY</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

                <span class="k">switch</span> <span class="p">(</span><span class="nx">elementAlign</span><span class="p">)</span> <span class="p">{</span>
    
                    <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">TOP_LEFT</span><span class="o">:</span>
                        <span class="nx">alignX</span> <span class="o">=</span> <span class="nx">h</span><span class="p">;</span>
                        <span class="nx">alignY</span> <span class="o">=</span> <span class="nx">v</span><span class="p">;</span>
                        <span class="k">break</span><span class="p">;</span>
        
                    <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">TOP_RIGHT</span><span class="o">:</span>
                        <span class="nx">alignX</span> <span class="o">=</span> <span class="nx">h</span> <span class="o">-</span> <span class="nx">element</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">;</span>
                        <span class="nx">alignY</span> <span class="o">=</span> <span class="nx">v</span><span class="p">;</span>
                        <span class="k">break</span><span class="p">;</span>
        
                    <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">BOTTOM_LEFT</span><span class="o">:</span>
                        <span class="nx">alignX</span> <span class="o">=</span> <span class="nx">h</span><span class="p">;</span>
                        <span class="nx">alignY</span> <span class="o">=</span> <span class="nx">v</span> <span class="o">-</span> <span class="nx">element</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span>
                        <span class="k">break</span><span class="p">;</span>
        
                    <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">BOTTOM_RIGHT</span><span class="o">:</span>
                        <span class="nx">alignX</span> <span class="o">=</span> <span class="nx">h</span> <span class="o">-</span> <span class="nx">element</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">;</span> 
                        <span class="nx">alignY</span> <span class="o">=</span> <span class="nx">v</span> <span class="o">-</span> <span class="nx">element</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span>
                        <span class="k">break</span><span class="p">;</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">alignX</span> <span class="o">!==</span> <span class="kc">null</span> <span class="o">&amp;&amp;</span> <span class="nx">alignY</span> <span class="o">!==</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">xyOffset</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">alignX</span> <span class="o">+=</span> <span class="nx">xyOffset</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                        <span class="nx">alignY</span> <span class="o">+=</span> <span class="nx">xyOffset</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
                    <span class="p">}</span>
                    <span class="nx">me</span><span class="p">.</span><span class="nx">moveTo</span><span class="p">(</span><span class="nx">alignX</span><span class="p">,</span> <span class="nx">alignY</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">contextArgs</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">context</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
                <span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">;</span>
                <span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">elementAlign</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">elementAlign</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span> <span class="nx">contextAlign</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">contextAlign</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">xyOffset</span> <span class="o">&amp;&amp;</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span> <span class="p">{</span>
                    <span class="nx">xyOffset</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="p">[</span><span class="mi">4</span><span class="p">];</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">element</span> <span class="o">&amp;&amp;</span> <span class="nx">context</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">contextRegion</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getRegion</span><span class="p">(</span><span class="nx">context</span><span class="p">);</span>

                    <span class="k">switch</span> <span class="p">(</span><span class="nx">contextAlign</span><span class="p">)</span> <span class="p">{</span>
    
                        <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">TOP_LEFT</span><span class="o">:</span>
                            <span class="nx">doAlign</span><span class="p">(</span><span class="nx">contextRegion</span><span class="p">.</span><span class="nx">top</span><span class="p">,</span> <span class="nx">contextRegion</span><span class="p">.</span><span class="nx">left</span><span class="p">);</span>
                            <span class="k">break</span><span class="p">;</span>
        
                        <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">TOP_RIGHT</span><span class="o">:</span>
                            <span class="nx">doAlign</span><span class="p">(</span><span class="nx">contextRegion</span><span class="p">.</span><span class="nx">top</span><span class="p">,</span> <span class="nx">contextRegion</span><span class="p">.</span><span class="nx">right</span><span class="p">);</span>
                            <span class="k">break</span><span class="p">;</span>
        
                        <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">BOTTOM_LEFT</span><span class="o">:</span>
                            <span class="nx">doAlign</span><span class="p">(</span><span class="nx">contextRegion</span><span class="p">.</span><span class="nx">bottom</span><span class="p">,</span> <span class="nx">contextRegion</span><span class="p">.</span><span class="nx">left</span><span class="p">);</span>
                            <span class="k">break</span><span class="p">;</span>
        
                        <span class="k">case</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">BOTTOM_RIGHT</span><span class="o">:</span>
                            <span class="nx">doAlign</span><span class="p">(</span><span class="nx">contextRegion</span><span class="p">.</span><span class="nx">bottom</span><span class="p">,</span> <span class="nx">contextRegion</span><span class="p">.</span><span class="nx">right</span><span class="p">);</span>
                            <span class="k">break</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * The default event handler executed when the moveEvent is fired, if the </span>
<span class="cm">        * &quot;constraintoviewport&quot; is set to true.</span>
<span class="cm">        * @method enforceConstraints</span>
<span class="cm">        * @param {String} type The CustomEvent type (usually the property name)</span>
<span class="cm">        * @param {Object[]} args The CustomEvent arguments. For configuration </span>
<span class="cm">        * handlers, args[0] will equal the newly applied value for the property.</span>
<span class="cm">        * @param {Object} obj The scope object. For configuration handlers, </span>
<span class="cm">        * this will usually equal the owner.</span>
<span class="cm">        */</span>
        <span class="nx">enforceConstraints</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">args</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

            <span class="kd">var</span> <span class="nx">cXY</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getConstrainedXY</span><span class="p">(</span><span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">]);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="nx">cXY</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="nx">cXY</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">,</span> <span class="nx">cXY</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Shared implementation method for getConstrainedX and getConstrainedY.</span>
<span class="cm">         * </span>
<span class="cm">         * &lt;p&gt;</span>
<span class="cm">         * Given a coordinate value, returns the calculated coordinate required to </span>
<span class="cm">         * position the Overlay if it is to be constrained to the viewport, based on the </span>
<span class="cm">         * current element size, viewport dimensions, scroll values and preventoverlap </span>
<span class="cm">         * settings</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         *</span>
<span class="cm">         * @method _getConstrainedPos</span>
<span class="cm">         * @protected</span>
<span class="cm">         * @param {String} pos The coordinate which needs to be constrained, either &quot;x&quot; or &quot;y&quot;</span>
<span class="cm">         * @param {Number} The coordinate value which needs to be constrained</span>
<span class="cm">         * @return {Number} The constrained coordinate value</span>
<span class="cm">         */</span>
        <span class="nx">_getConstrainedPos</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">pos</span><span class="p">,</span> <span class="nx">val</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">overlayEl</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span>

                <span class="nx">buffer</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="p">,</span>

                <span class="nx">x</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="s2">&quot;x&quot;</span><span class="p">),</span>

                <span class="nx">overlaySize</span>      <span class="o">=</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="o">?</span> <span class="nx">overlayEl</span><span class="p">.</span><span class="nx">offsetWidth</span> <span class="o">:</span> <span class="nx">overlayEl</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span>
                <span class="nx">viewportSize</span>     <span class="o">=</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="o">?</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">()</span> <span class="o">:</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">(),</span>
                <span class="nx">docScroll</span>        <span class="o">=</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="o">?</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollLeft</span><span class="p">()</span> <span class="o">:</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollTop</span><span class="p">(),</span>
                <span class="nx">overlapPositions</span> <span class="o">=</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="o">?</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">PREVENT_OVERLAP_X</span> <span class="o">:</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">PREVENT_OVERLAP_Y</span><span class="p">,</span>

                <span class="nx">context</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;context&quot;</span><span class="p">),</span>

                <span class="nx">bOverlayFitsInViewport</span> <span class="o">=</span> <span class="p">(</span><span class="nx">overlaySize</span> <span class="o">+</span> <span class="nx">buffer</span> <span class="o">&lt;</span> <span class="nx">viewportSize</span><span class="p">),</span>
                <span class="nx">bPreventContextOverlap</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;preventcontextoverlap&quot;</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">context</span> <span class="o">&amp;&amp;</span> <span class="nx">overlapPositions</span><span class="p">[(</span><span class="nx">context</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="nx">context</span><span class="p">[</span><span class="mi">2</span><span class="p">])],</span>

                <span class="nx">minConstraint</span> <span class="o">=</span> <span class="nx">docScroll</span> <span class="o">+</span> <span class="nx">buffer</span><span class="p">,</span>
                <span class="nx">maxConstraint</span> <span class="o">=</span> <span class="nx">docScroll</span> <span class="o">+</span> <span class="nx">viewportSize</span> <span class="o">-</span> <span class="nx">overlaySize</span> <span class="o">-</span> <span class="nx">buffer</span><span class="p">,</span>

                <span class="nx">constrainedVal</span> <span class="o">=</span> <span class="nx">val</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">&lt;</span> <span class="nx">minConstraint</span> <span class="o">||</span> <span class="nx">val</span> <span class="o">&gt;</span> <span class="nx">maxConstraint</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">if</span> <span class="p">(</span><span class="nx">bPreventContextOverlap</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">constrainedVal</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_preventOverlap</span><span class="p">(</span><span class="nx">pos</span><span class="p">,</span> <span class="nx">context</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">overlaySize</span><span class="p">,</span> <span class="nx">viewportSize</span><span class="p">,</span> <span class="nx">docScroll</span><span class="p">);</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">bOverlayFitsInViewport</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">&lt;</span> <span class="nx">minConstraint</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">constrainedVal</span> <span class="o">=</span> <span class="nx">minConstraint</span><span class="p">;</span>
                        <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">val</span> <span class="o">&gt;</span> <span class="nx">maxConstraint</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">constrainedVal</span> <span class="o">=</span> <span class="nx">maxConstraint</span><span class="p">;</span>
                        <span class="p">}</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">constrainedVal</span> <span class="o">=</span> <span class="nx">minConstraint</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="nx">constrainedVal</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Helper method, used to position the Overlap to prevent overlap with the </span>
<span class="cm">         * context element (used when preventcontextoverlap is enabled)</span>
<span class="cm">         *</span>
<span class="cm">         * @method _preventOverlap</span>
<span class="cm">         * @protected</span>
<span class="cm">         * @param {String} pos The coordinate to prevent overlap for, either &quot;x&quot; or &quot;y&quot;.</span>
<span class="cm">         * @param {HTMLElement} contextEl The context element</span>
<span class="cm">         * @param {Number} overlaySize The related overlay dimension value (for &quot;x&quot;, the width, for &quot;y&quot;, the height)</span>
<span class="cm">         * @param {Number} viewportSize The related viewport dimension value (for &quot;x&quot;, the width, for &quot;y&quot;, the height)</span>
<span class="cm">         * @param {Object} docScroll  The related document scroll value (for &quot;x&quot;, the scrollLeft, for &quot;y&quot;, the scrollTop)</span>
<span class="cm">         *</span>
<span class="cm">         * @return {Number} The new coordinate value which was set to prevent overlap</span>
<span class="cm">         */</span>
        <span class="nx">_preventOverlap</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">pos</span><span class="p">,</span> <span class="nx">contextEl</span><span class="p">,</span> <span class="nx">overlaySize</span><span class="p">,</span> <span class="nx">viewportSize</span><span class="p">,</span> <span class="nx">docScroll</span><span class="p">)</span> <span class="p">{</span>
            
            <span class="kd">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="p">(</span><span class="nx">pos</span> <span class="o">==</span> <span class="s2">&quot;x&quot;</span><span class="p">),</span>

                <span class="nx">buffer</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="p">,</span>

                <span class="nx">overlay</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span>

                <span class="nx">contextElPos</span>   <span class="o">=</span> <span class="p">((</span><span class="nx">x</span><span class="p">)</span> <span class="o">?</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getX</span><span class="p">(</span><span class="nx">contextEl</span><span class="p">)</span> <span class="o">:</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getY</span><span class="p">(</span><span class="nx">contextEl</span><span class="p">))</span> <span class="o">-</span> <span class="nx">docScroll</span><span class="p">,</span>
                <span class="nx">contextElSize</span>  <span class="o">=</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="o">?</span> <span class="nx">contextEl</span><span class="p">.</span><span class="nx">offsetWidth</span> <span class="o">:</span> <span class="nx">contextEl</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span>

                <span class="nx">minRegionSize</span> <span class="o">=</span> <span class="nx">contextElPos</span> <span class="o">-</span> <span class="nx">buffer</span><span class="p">,</span>
                <span class="nx">maxRegionSize</span> <span class="o">=</span> <span class="p">(</span><span class="nx">viewportSize</span> <span class="o">-</span> <span class="p">(</span><span class="nx">contextElPos</span> <span class="o">+</span> <span class="nx">contextElSize</span><span class="p">))</span> <span class="o">-</span> <span class="nx">buffer</span><span class="p">,</span>

                <span class="nx">bFlipped</span> <span class="o">=</span> <span class="kc">false</span><span class="p">,</span>

                <span class="nx">flip</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">flippedVal</span><span class="p">;</span>

                    <span class="k">if</span> <span class="p">((</span><span class="nx">overlay</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">pos</span><span class="p">)</span> <span class="o">-</span> <span class="nx">docScroll</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nx">contextElPos</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">flippedVal</span> <span class="o">=</span> <span class="p">(</span><span class="nx">contextElPos</span> <span class="o">-</span> <span class="nx">overlaySize</span><span class="p">);</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">flippedVal</span> <span class="o">=</span> <span class="p">(</span><span class="nx">contextElPos</span> <span class="o">+</span> <span class="nx">contextElSize</span><span class="p">);</span>
                    <span class="p">}</span>

                    <span class="nx">overlay</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="nx">pos</span><span class="p">,</span> <span class="p">(</span><span class="nx">flippedVal</span> <span class="o">+</span> <span class="nx">docScroll</span><span class="p">),</span> <span class="kc">true</span><span class="p">);</span>

                    <span class="k">return</span> <span class="nx">flippedVal</span><span class="p">;</span>
                <span class="p">},</span>

                <span class="nx">setPosition</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

                    <span class="kd">var</span> <span class="nx">displayRegionSize</span> <span class="o">=</span> <span class="p">((</span><span class="nx">overlay</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">pos</span><span class="p">)</span> <span class="o">-</span> <span class="nx">docScroll</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nx">contextElPos</span><span class="p">)</span> <span class="o">?</span> <span class="nx">maxRegionSize</span> <span class="o">:</span> <span class="nx">minRegionSize</span><span class="p">,</span>
                        <span class="nx">position</span><span class="p">;</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">overlaySize</span> <span class="o">&gt;</span> <span class="nx">displayRegionSize</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">bFlipped</span><span class="p">)</span> <span class="p">{</span>
                            <span class="cm">/*</span>
<span class="cm">                                 All possible positions and values have been </span>
<span class="cm">                                 tried, but none were successful, so fall back </span>
<span class="cm">                                 to the original size and position.</span>
<span class="cm">                            */</span>
                            <span class="nx">flip</span><span class="p">();</span>
                        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                            <span class="nx">flip</span><span class="p">();</span>
                            <span class="nx">bFlipped</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                            <span class="nx">position</span> <span class="o">=</span> <span class="nx">setPosition</span><span class="p">();</span>
                        <span class="p">}</span>
                    <span class="p">}</span>

                    <span class="k">return</span> <span class="nx">position</span><span class="p">;</span>
                <span class="p">};</span>

            <span class="nx">setPosition</span><span class="p">();</span>

            <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="nx">pos</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Given x coordinate value, returns the calculated x coordinate required to </span>
<span class="cm">         * position the Overlay if it is to be constrained to the viewport, based on the </span>
<span class="cm">         * current element size, viewport dimensions and scroll values.</span>
<span class="cm">         *</span>
<span class="cm">         * @param {Number} x The X coordinate value to be constrained</span>
<span class="cm">         * @return {Number} The constrained x coordinate</span>
<span class="cm">         */</span>		
        <span class="nx">getConstrainedX</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_getConstrainedPos</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="nx">x</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Given y coordinate value, returns the calculated y coordinate required to </span>
<span class="cm">         * position the Overlay if it is to be constrained to the viewport, based on the </span>
<span class="cm">         * current element size, viewport dimensions and scroll values.</span>
<span class="cm">         *</span>
<span class="cm">         * @param {Number} y The Y coordinate value to be constrained</span>
<span class="cm">         * @return {Number} The constrained y coordinate</span>
<span class="cm">         */</span>		
        <span class="nx">getConstrainedY</span> <span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">_getConstrainedPos</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="nx">y</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Given x, y coordinate values, returns the calculated coordinates required to </span>
<span class="cm">         * position the Overlay if it is to be constrained to the viewport, based on the </span>
<span class="cm">         * current element size, viewport dimensions and scroll values.</span>
<span class="cm">         *</span>
<span class="cm">         * @param {Number} x The X coordinate value to be constrained</span>
<span class="cm">         * @param {Number} y The Y coordinate value to be constrained</span>
<span class="cm">         * @return {Array} The constrained x and y coordinates at index 0 and 1 respectively;</span>
<span class="cm">         */</span>
        <span class="nx">getConstrainedXY</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">getConstrainedX</span><span class="p">(</span><span class="nx">x</span><span class="p">),</span> <span class="k">this</span><span class="p">.</span><span class="nx">getConstrainedY</span><span class="p">(</span><span class="nx">y</span><span class="p">)];</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Centers the container in the viewport.</span>
<span class="cm">        * @method center</span>
<span class="cm">        */</span>
        <span class="nx">center</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">nViewportOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="p">,</span>
                <span class="nx">elementWidth</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">.</span><span class="nx">offsetWidth</span><span class="p">,</span>
                <span class="nx">elementHeight</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">,</span>
                <span class="nx">viewPortWidth</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportWidth</span><span class="p">(),</span>
                <span class="nx">viewPortHeight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getViewportHeight</span><span class="p">(),</span>
                <span class="nx">x</span><span class="p">,</span>
                <span class="nx">y</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">elementWidth</span> <span class="o">&lt;</span> <span class="nx">viewPortWidth</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">x</span> <span class="o">=</span> <span class="p">(</span><span class="nx">viewPortWidth</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="nx">elementWidth</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollLeft</span><span class="p">();</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nx">x</span> <span class="o">=</span> <span class="nx">nViewportOffset</span> <span class="o">+</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollLeft</span><span class="p">();</span>
            <span class="p">}</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">elementHeight</span> <span class="o">&lt;</span> <span class="nx">viewPortHeight</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="p">(</span><span class="nx">viewPortHeight</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">-</span> <span class="p">(</span><span class="nx">elementHeight</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> <span class="o">+</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollTop</span><span class="p">();</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="nx">y</span> <span class="o">=</span> <span class="nx">nViewportOffset</span> <span class="o">+</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getDocumentScrollTop</span><span class="p">();</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">,</span> <span class="p">[</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">y</span><span class="p">,</span> <span class="mi">10</span><span class="p">)]);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">webkit</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">forceContainerRedraw</span><span class="p">();</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Synchronizes the Panel&#39;s &quot;xy&quot;, &quot;x&quot;, and &quot;y&quot; properties with the </span>
<span class="cm">        * Panel&#39;s position in the DOM. This is primarily used to update  </span>
<span class="cm">        * position information during drag &amp; drop.</span>
<span class="cm">        * @method syncPosition</span>
<span class="cm">        */</span>
        <span class="nx">syncPosition</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getXY</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">);</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="nx">pos</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="kc">true</span><span class="p">);</span>
            <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;xy&quot;</span><span class="p">,</span> <span class="nx">pos</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span>

        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Event handler fired when the resize monitor element is resized.</span>
<span class="cm">        * @method onDomResize</span>
<span class="cm">        * @param {DOMEvent} e The resize DOM event</span>
<span class="cm">        * @param {Object} obj The scope object</span>
<span class="cm">        */</span>
        <span class="nx">onDomResize</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>

            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">onDomResize</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">e</span><span class="p">,</span> <span class="nx">obj</span><span class="p">);</span>

            <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
                <span class="nx">me</span><span class="p">.</span><span class="nx">syncPosition</span><span class="p">();</span>
                <span class="nx">me</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;iframe&quot;</span><span class="p">);</span>
                <span class="nx">me</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">refireEvent</span><span class="p">(</span><span class="s2">&quot;context&quot;</span><span class="p">);</span>
            <span class="p">},</span> <span class="mi">0</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Determines the content box height of the given element (height of the element, without padding or borders) in pixels.</span>
<span class="cm">         *</span>
<span class="cm">         * @method _getComputedHeight</span>
<span class="cm">         * @private</span>
<span class="cm">         * @param {HTMLElement} el The element for which the content height needs to be determined</span>
<span class="cm">         * @return {Number} The content box height of the given element, or null if it could not be determined.</span>
<span class="cm">         */</span>
        <span class="nx">_getComputedHeight</span> <span class="o">:</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>

            <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">defaultView</span> <span class="o">&amp;&amp;</span> <span class="nb">document</span><span class="p">.</span><span class="nx">defaultView</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">ownerDocument</span> <span class="o">&amp;&amp;</span> <span class="nx">el</span><span class="p">.</span><span class="nx">ownerDocument</span><span class="p">.</span><span class="nx">defaultView</span><span class="p">)</span> <span class="p">{</span>
                        <span class="kd">var</span> <span class="nx">computed</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">ownerDocument</span><span class="p">.</span><span class="nx">defaultView</span><span class="p">.</span><span class="nx">getComputedStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">);</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">computed</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">height</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">computed</span><span class="p">.</span><span class="nx">height</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                    <span class="k">return</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isNumber</span><span class="p">(</span><span class="nx">height</span><span class="p">))</span> <span class="o">?</span> <span class="nx">height</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
                <span class="p">};</span>
            <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                <span class="k">return</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">pixelHeight</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">height</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">pixelHeight</span><span class="p">;</span>
                    <span class="p">}</span>
                    <span class="k">return</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isNumber</span><span class="p">(</span><span class="nx">height</span><span class="p">))</span> <span class="o">?</span> <span class="nx">height</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
                <span class="p">};</span>
            <span class="p">}</span>
        <span class="p">})(),</span>

        <span class="cm">/**</span>
<span class="cm">         * autofillheight validator. Verifies that the autofill value is either null </span>
<span class="cm">         * or one of the strings : &quot;body&quot;, &quot;header&quot; or &quot;footer&quot;.</span>
<span class="cm">         *</span>
<span class="cm">         * @method _validateAutoFillHeight</span>
<span class="cm">         * @protected</span>
<span class="cm">         * @param {String} val</span>
<span class="cm">         * @return true, if valid, false otherwise</span>
<span class="cm">         */</span>
        <span class="nx">_validateAutoFillHeight</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">return</span> <span class="p">(</span><span class="o">!</span><span class="nx">val</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="nx">Lang</span><span class="p">.</span><span class="nx">isString</span><span class="p">(</span><span class="nx">val</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">STD_MOD_RE</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">val</span><span class="p">));</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * The default custom event handler executed when the overlay&#39;s height is changed, </span>
<span class="cm">         * if the autofillheight property has been set.</span>
<span class="cm">         *</span>
<span class="cm">         * @method _autoFillOnHeightChange</span>
<span class="cm">         * @protected</span>
<span class="cm">         * @param {String} type The event type</span>
<span class="cm">         * @param {Array} args The array of arguments passed to event subscribers</span>
<span class="cm">         * @param {HTMLElement} el The header, body or footer element which is to be resized to fill</span>
<span class="cm">         * out the containers height</span>
<span class="cm">         */</span>
        <span class="nx">_autoFillOnHeightChange</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">getProperty</span><span class="p">(</span><span class="s2">&quot;height&quot;</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">((</span><span class="nx">height</span> <span class="o">&amp;&amp;</span> <span class="nx">height</span> <span class="o">!==</span> <span class="s2">&quot;auto&quot;</span><span class="p">)</span> <span class="o">||</span> <span class="p">(</span><span class="nx">height</span> <span class="o">===</span> <span class="mi">0</span><span class="p">))</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">fillHeight</span><span class="p">(</span><span class="nx">el</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Returns the sub-pixel height of the el, using getBoundingClientRect, if available,</span>
<span class="cm">         * otherwise returns the offsetHeight</span>
<span class="cm">         * @method _getPreciseHeight</span>
<span class="cm">         * @private</span>
<span class="cm">         * @param {HTMLElement} el</span>
<span class="cm">         * @return {Float} The sub-pixel height if supported by the browser, else the rounded height.</span>
<span class="cm">         */</span>
        <span class="nx">_getPreciseHeight</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">rect</span> <span class="o">=</span> <span class="nx">el</span><span class="p">.</span><span class="nx">getBoundingClientRect</span><span class="p">();</span>
                <span class="nx">height</span> <span class="o">=</span> <span class="nx">rect</span><span class="p">.</span><span class="nx">bottom</span> <span class="o">-</span> <span class="nx">rect</span><span class="p">.</span><span class="nx">top</span><span class="p">;</span>
            <span class="p">}</span>

            <span class="k">return</span> <span class="nx">height</span><span class="p">;</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * &lt;p&gt;</span>
<span class="cm">         * Sets the height on the provided header, body or footer element to </span>
<span class="cm">         * fill out the height of the container. It determines the height of the </span>
<span class="cm">         * containers content box, based on it&#39;s configured height value, and </span>
<span class="cm">         * sets the height of the autofillheight element to fill out any </span>
<span class="cm">         * space remaining after the other standard module element heights </span>
<span class="cm">         * have been accounted for.</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; This method is not designed to work if an explicit </span>
<span class="cm">         * height has not been set on the container, since for an &quot;auto&quot; height container, </span>
<span class="cm">         * the heights of the header/body/footer will drive the height of the container.&lt;/p&gt;</span>
<span class="cm">         *</span>
<span class="cm">         * @method fillHeight</span>
<span class="cm">         * @param {HTMLElement} el The element which should be resized to fill out the height</span>
<span class="cm">         * of the container element.</span>
<span class="cm">         */</span>
        <span class="nx">fillHeight</span> <span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
            <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">)</span> <span class="p">{</span>
                <span class="kd">var</span> <span class="nx">container</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">innerElement</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span>
                    <span class="nx">containerEls</span> <span class="o">=</span> <span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">header</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">body</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">footer</span><span class="p">],</span>
                    <span class="nx">containerEl</span><span class="p">,</span>
                    <span class="nx">total</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
                    <span class="nx">filled</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
                    <span class="nx">remaining</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
                    <span class="nx">validEl</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>

                <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">containerEls</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">l</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
                    <span class="nx">containerEl</span> <span class="o">=</span> <span class="nx">containerEls</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">containerEl</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">if</span> <span class="p">(</span><span class="nx">el</span> <span class="o">!==</span> <span class="nx">containerEl</span><span class="p">)</span> <span class="p">{</span>
                            <span class="nx">filled</span> <span class="o">+=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_getPreciseHeight</span><span class="p">(</span><span class="nx">containerEl</span><span class="p">);</span>
                        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                            <span class="nx">validEl</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">validEl</span><span class="p">)</span> <span class="p">{</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">UA</span><span class="p">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">UA</span><span class="p">.</span><span class="nx">opera</span><span class="p">)</span> <span class="p">{</span>
                        <span class="c1">// Need to set height to 0, to allow height to be reduced</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s1">&#39;height&#39;</span><span class="p">,</span> <span class="mi">0</span> <span class="o">+</span> <span class="s1">&#39;px&#39;</span><span class="p">);</span>
                    <span class="p">}</span>

                    <span class="nx">total</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">_getComputedHeight</span><span class="p">(</span><span class="nx">container</span><span class="p">);</span>

                    <span class="c1">// Fallback, if we can&#39;t get computed value for content height</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">total</span> <span class="o">===</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">container</span><span class="p">,</span> <span class="s2">&quot;yui-override-padding&quot;</span><span class="p">);</span>
                        <span class="nx">total</span> <span class="o">=</span> <span class="nx">container</span><span class="p">.</span><span class="nx">clientHeight</span><span class="p">;</span> <span class="c1">// Content, No Border, 0 Padding (set by yui-override-padding)</span>
                        <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">container</span><span class="p">,</span> <span class="s2">&quot;yui-override-padding&quot;</span><span class="p">);</span>
                    <span class="p">}</span>
    
                    <span class="nx">remaining</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">total</span> <span class="o">-</span> <span class="nx">filled</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
    
                    <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s2">&quot;height&quot;</span><span class="p">,</span> <span class="nx">remaining</span> <span class="o">+</span> <span class="s2">&quot;px&quot;</span><span class="p">);</span>
    
                    <span class="c1">// Re-adjust height if required, to account for el padding and border</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o">!=</span> <span class="nx">remaining</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">remaining</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">max</span><span class="p">(</span><span class="nx">remaining</span> <span class="o">-</span> <span class="p">(</span><span class="nx">el</span><span class="p">.</span><span class="nx">offsetHeight</span> <span class="o">-</span> <span class="nx">remaining</span><span class="p">),</span> <span class="mi">0</span><span class="p">);</span>
                    <span class="p">}</span>
                    <span class="nx">Dom</span><span class="p">.</span><span class="nx">setStyle</span><span class="p">(</span><span class="nx">el</span><span class="p">,</span> <span class="s2">&quot;height&quot;</span><span class="p">,</span> <span class="nx">remaining</span> <span class="o">+</span> <span class="s2">&quot;px&quot;</span><span class="p">);</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Places the Overlay on top of all other instances of </span>
<span class="cm">        * YAHOO.widget.Overlay.</span>
<span class="cm">        * @method bringToTop</span>
<span class="cm">        */</span>
        <span class="nx">bringToTop</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>

            <span class="kd">var</span> <span class="nx">aOverlays</span> <span class="o">=</span> <span class="p">[],</span>
                <span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">element</span><span class="p">;</span>

            <span class="kd">function</span> <span class="nx">compareZIndexDesc</span><span class="p">(</span><span class="nx">p_oOverlay1</span><span class="p">,</span> <span class="nx">p_oOverlay2</span><span class="p">)</span> <span class="p">{</span>

                <span class="kd">var</span> <span class="nx">sZIndex1</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">p_oOverlay1</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">),</span>
                    <span class="nx">sZIndex2</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">p_oOverlay2</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">),</span>

                    <span class="nx">nZIndex1</span> <span class="o">=</span> <span class="p">(</span><span class="o">!</span><span class="nx">sZIndex1</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">sZIndex1</span><span class="p">))</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">sZIndex1</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
                    <span class="nx">nZIndex2</span> <span class="o">=</span> <span class="p">(</span><span class="o">!</span><span class="nx">sZIndex2</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="p">(</span><span class="nx">sZIndex2</span><span class="p">))</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="nb">parseInt</span><span class="p">(</span><span class="nx">sZIndex2</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">nZIndex1</span> <span class="o">&gt;</span> <span class="nx">nZIndex2</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">;</span>
                <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">nZIndex1</span> <span class="o">&lt;</span> <span class="nx">nZIndex2</span><span class="p">)</span> <span class="p">{</span>
                    <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
                <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                    <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="kd">function</span> <span class="nx">isOverlayElement</span><span class="p">(</span><span class="nx">p_oElement</span><span class="p">)</span> <span class="p">{</span>

                <span class="kd">var</span> <span class="nx">isOverlay</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">p_oElement</span><span class="p">,</span> <span class="nx">Overlay</span><span class="p">.</span><span class="nx">CSS_OVERLAY</span><span class="p">),</span>
                    <span class="nx">Panel</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="p">.</span><span class="nx">widget</span><span class="p">.</span><span class="nx">Panel</span><span class="p">;</span>

                <span class="k">if</span> <span class="p">(</span><span class="nx">isOverlay</span> <span class="o">&amp;&amp;</span> <span class="o">!</span><span class="nx">Dom</span><span class="p">.</span><span class="nx">isAncestor</span><span class="p">(</span><span class="nx">oElement</span><span class="p">,</span> <span class="nx">p_oElement</span><span class="p">))</span> <span class="p">{</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">Panel</span> <span class="o">&amp;&amp;</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">hasClass</span><span class="p">(</span><span class="nx">p_oElement</span><span class="p">,</span> <span class="nx">Panel</span><span class="p">.</span><span class="nx">CSS_PANEL</span><span class="p">))</span> <span class="p">{</span>
                        <span class="nx">aOverlays</span><span class="p">[</span><span class="nx">aOverlays</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">;</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
                        <span class="nx">aOverlays</span><span class="p">[</span><span class="nx">aOverlays</span><span class="p">.</span><span class="nx">length</span><span class="p">]</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="p">;</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>

            <span class="nx">Dom</span><span class="p">.</span><span class="nx">getElementsBy</span><span class="p">(</span><span class="nx">isOverlayElement</span><span class="p">,</span> <span class="s2">&quot;div&quot;</span><span class="p">,</span> <span class="nb">document</span><span class="p">.</span><span class="nx">body</span><span class="p">);</span>

            <span class="nx">aOverlays</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span><span class="nx">compareZIndexDesc</span><span class="p">);</span>

            <span class="kd">var</span> <span class="nx">oTopOverlay</span> <span class="o">=</span> <span class="nx">aOverlays</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
                <span class="nx">nTopZIndex</span><span class="p">;</span>

            <span class="k">if</span> <span class="p">(</span><span class="nx">oTopOverlay</span><span class="p">)</span> <span class="p">{</span>
                <span class="nx">nTopZIndex</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">oTopOverlay</span><span class="p">,</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">);</span>

                <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">isNaN</span><span class="p">(</span><span class="nx">nTopZIndex</span><span class="p">))</span> <span class="p">{</span>
                    <span class="kd">var</span> <span class="nx">bRequiresBump</span> <span class="o">=</span> <span class="kc">false</span><span class="p">;</span>

                    <span class="k">if</span> <span class="p">(</span><span class="nx">oTopOverlay</span> <span class="o">!=</span> <span class="nx">oElement</span><span class="p">)</span> <span class="p">{</span>
                        <span class="nx">bRequiresBump</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                    <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">aOverlays</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
                        <span class="kd">var</span> <span class="nx">nNextZIndex</span> <span class="o">=</span> <span class="nx">Dom</span><span class="p">.</span><span class="nx">getStyle</span><span class="p">(</span><span class="nx">aOverlays</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;zIndex&quot;</span><span class="p">);</span>
                        <span class="c1">// Don&#39;t rely on DOM order to stack if 2 overlays are at the same zindex.</span>
                        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">isNaN</span><span class="p">(</span><span class="nx">nNextZIndex</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nx">nTopZIndex</span> <span class="o">==</span> <span class="nx">nNextZIndex</span><span class="p">))</span> <span class="p">{</span>
                            <span class="nx">bRequiresBump</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                    <span class="k">if</span> <span class="p">(</span><span class="nx">bRequiresBump</span><span class="p">)</span> <span class="p">{</span>
                        <span class="k">this</span><span class="p">.</span><span class="nx">cfg</span><span class="p">.</span><span class="nx">setProperty</span><span class="p">(</span><span class="s2">&quot;zindex&quot;</span><span class="p">,</span> <span class="p">(</span><span class="nb">parseInt</span><span class="p">(</span><span class="nx">nTopZIndex</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span> <span class="o">+</span> <span class="mi">2</span><span class="p">));</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Removes the Overlay element from the DOM and sets all child </span>
<span class="cm">        * elements to null.</span>
<span class="cm">        * @method destroy</span>
<span class="cm">        * @param {boolean} shallowPurge If true, only the parent element&#39;s DOM event listeners are purged. If false, or not provided, all children are also purged of DOM event listeners. </span>
<span class="cm">        * NOTE: The flag is a &quot;shallowPurge&quot; flag, as opposed to what may be a more intuitive &quot;purgeChildren&quot; flag to maintain backwards compatibility with behavior prior to 2.9.0.</span>
<span class="cm">        */</span>
        <span class="nx">destroy</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">shallowPurge</span><span class="p">)</span> <span class="p">{</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">)</span> <span class="p">{</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">.</span><span class="nx">parentNode</span><span class="p">.</span><span class="nx">removeChild</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">iframe</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="k">this</span><span class="p">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>

            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowResizeEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>
    
            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">windowScrollEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">doCenterOnDOMEvent</span><span class="p">,</span> <span class="k">this</span><span class="p">);</span>

            <span class="nx">Module</span><span class="p">.</span><span class="nx">textResizeEvent</span><span class="p">.</span><span class="nx">unsubscribe</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_autoFillOnHeightChange</span><span class="p">);</span>

            <span class="k">if</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_contextTriggers</span><span class="p">)</span> <span class="p">{</span>
                <span class="c1">// Unsubscribe context triggers - to cover context triggers which listen for global</span>
                <span class="c1">// events such as windowResize and windowScroll. Easier just to unsubscribe all</span>
                <span class="k">this</span><span class="p">.</span><span class="nx">_processTriggers</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">_contextTriggers</span><span class="p">,</span> <span class="nx">_UNSUBSCRIBE</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">_alignOnTrigger</span><span class="p">);</span>
            <span class="p">}</span>

            <span class="nx">Overlay</span><span class="p">.</span><span class="nx">superclass</span><span class="p">.</span><span class="nx">destroy</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="nx">shallowPurge</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">         * Can be used to force the container to repaint/redraw it&#39;s contents.</span>
<span class="cm">         * &lt;p&gt;</span>
<span class="cm">         * By default applies and then removes a 1px bottom margin through the </span>
<span class="cm">         * application/removal of a &quot;yui-force-redraw&quot; class.</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * &lt;p&gt;</span>
<span class="cm">         * It is currently used by Overlay to force a repaint for webkit </span>
<span class="cm">         * browsers, when centering.</span>
<span class="cm">         * &lt;/p&gt;</span>
<span class="cm">         * @method forceContainerRedraw</span>
<span class="cm">         */</span>
        <span class="nx">forceContainerRedraw</span> <span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="kd">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
            <span class="nx">Dom</span><span class="p">.</span><span class="nx">addClass</span><span class="p">(</span><span class="nx">c</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;yui-force-redraw&quot;</span><span class="p">);</span>
            <span class="nx">setTimeout</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
                <span class="nx">Dom</span><span class="p">.</span><span class="nx">removeClass</span><span class="p">(</span><span class="nx">c</span><span class="p">.</span><span class="nx">element</span><span class="p">,</span> <span class="s2">&quot;yui-force-redraw&quot;</span><span class="p">);</span>
            <span class="p">},</span> <span class="mi">0</span><span class="p">);</span>
        <span class="p">},</span>

        <span class="cm">/**</span>
<span class="cm">        * Returns a String representation of the object.</span>
<span class="cm">        * @method toString</span>
<span class="cm">        * @return {String} The string representation of the Overlay.</span>
<span class="cm">        */</span>
        <span class="nx">toString</span><span class="o">:</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
            <span class="k">return</span> <span class="s2">&quot;Overlay &quot;</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">id</span><span class="p">;</span>
        <span class="p">}</span>

    <span class="p">});</span>
<span class="p">}());</span>
</pre></div>

                    </div>
			</div>
		</div>
		<div class="yui-b">
            <div class="nav">

                    <div id="moduleList" class="module">
                        <h4>Modules</h4>
                        <ul class="content">
                                <li class=""><a href="module_animation.html" title="animation">animation</a></li>
                                <li class=""><a href="module_autocomplete.html" title="autocomplete">autocomplete</a></li>
                                <li class=""><a href="module_button.html" title="button">button</a></li>
                                <li class=""><a href="module_calendar.html" title="calendar">calendar</a></li>
                                <li class=""><a href="module_carousel.html" title="carousel">carousel</a></li>
                                <li class=""><a href="module_charts.html" title="charts">charts</a></li>
                                <li class=""><a href="module_colorpicker.html" title="colorpicker">colorpicker</a></li>
                                <li class=""><a href="module_connection.html" title="connection">connection</a></li>
                                <li class="selected"><a href="module_container.html" title="container">container</a></li>
                                <li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
                                <li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
                                <li class=""><a href="module_datatable.html" title="datatable">datatable</a></li>
                                <li class=""><a href="module_datemath.html" title="datemath">datemath</a></li>
                                <li class=""><a href="module_dom.html" title="dom">dom</a></li>
                                <li class=""><a href="module_dragdrop.html" title="dragdrop">dragdrop</a></li>
                                <li class=""><a href="module_editor.html" title="editor">editor</a></li>
                                <li class=""><a href="module_element.html" title="element">element</a></li>
                                <li class=""><a href="module_element-delegate.html" title="element-delegate">element-delegate</a></li>
                                <li class=""><a href="module_event.html" title="event">event</a></li>
                                <li class=""><a href="module_event-delegate.html" title="event-delegate">event-delegate</a></li>
                                <li class=""><a href="module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a></li>
                                <li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
                                <li class=""><a href="module_get.html" title="get">get</a></li>
                                <li class=""><a href="module_history.html" title="history">history</a></li>
                                <li class=""><a href="module_imagecropper.html" title="imagecropper">imagecropper</a></li>
                                <li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
                                <li class=""><a href="module_json.html" title="json">json</a></li>
                                <li class=""><a href="module_layout.html" title="layout">layout</a></li>
                                <li class=""><a href="module_logger.html" title="logger">logger</a></li>
                                <li class=""><a href="module_menu.html" title="menu">menu</a></li>
                                <li class=""><a href="module_paginator.html" title="paginator">paginator</a></li>
                                <li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
                                <li class=""><a href="module_profilerviewer.html" title="profilerviewer">profilerviewer</a></li>
                                <li class=""><a href="module_progressbar.html" title="progressbar">progressbar</a></li>
                                <li class=""><a href="module_resize.html" title="resize">resize</a></li>
                                <li class=""><a href="module_selector.html" title="selector">selector</a></li>
                                <li class=""><a href="module_slider.html" title="slider">slider</a></li>
                                <li class=""><a href="module_storage.html" title="Storage">Storage</a></li>
                                <li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
                                <li class=""><a href="module_swf.html" title="swf">swf</a></li>
                                <li class=""><a href="module_swfdetect.html" title="swfdetect">swfdetect</a></li>
                                <li class=""><a href="module_swfstore.html" title="swfstore">swfstore</a></li>
                                <li class=""><a href="module_tabview.html" title="tabview">tabview</a></li>
                                <li class=""><a href="module_treeview.html" title="treeview">treeview</a></li>
                                <li class=""><a href="module_uploader.html" title="uploader">uploader</a></li>
                                <li class=""><a href="module_yahoo.html" title="yahoo">yahoo</a></li>
                                <li class=""><a href="module_yuiloader.html" title="yuiloader">yuiloader</a></li>
                                <li class=""><a href="module_yuitest.html" title="yuitest">yuitest</a></li>
                        </ul>
                    </div>

                    <div id="classList" class="module">
                        <h4>Classes</h4>
                        <ul class="content">
                                <li class=""><a href="YAHOO.util.Config.html" title="YAHOO.util.Config">YAHOO.util.Config</a></li>
                                <li class=""><a href="YAHOO.widget.ContainerEffect.html" title="YAHOO.widget.ContainerEffect">YAHOO.widget.ContainerEffect</a></li>
                                <li class=""><a href="YAHOO.widget.Dialog.html" title="YAHOO.widget.Dialog">YAHOO.widget.Dialog</a></li>
                                <li class=""><a href="YAHOO.widget.Module.html" title="YAHOO.widget.Module">YAHOO.widget.Module</a></li>
                                <li class=""><a href="YAHOO.widget.Overlay.html" title="YAHOO.widget.Overlay">YAHOO.widget.Overlay</a></li>
                                <li class=""><a href="YAHOO.widget.OverlayManager.html" title="YAHOO.widget.OverlayManager">YAHOO.widget.OverlayManager</a></li>
                                <li class=""><a href="YAHOO.widget.Panel.html" title="YAHOO.widget.Panel">YAHOO.widget.Panel</a></li>
                                <li class=""><a href="YAHOO.widget.SimpleDialog.html" title="YAHOO.widget.SimpleDialog">YAHOO.widget.SimpleDialog</a></li>
                                <li class=""><a href="YAHOO.widget.Tooltip.html" title="YAHOO.widget.Tooltip">YAHOO.widget.Tooltip</a></li>
                        </ul>
                    </div>

                    <div id="fileList" class="module">
                        <h4>Files</h4>
                        <ul class="content">        
                                <li class=""><a href="Config.js.html" title="Config.js">Config.js</a></li>
                                <li class=""><a href="ContainerEffect.js.html" title="ContainerEffect.js">ContainerEffect.js</a></li>
                                <li class=""><a href="Dialog.js.html" title="Dialog.js">Dialog.js</a></li>
                                <li class=""><a href="Module.js.html" title="Module.js">Module.js</a></li>
                                <li class="selected"><a href="Overlay.js.html" title="Overlay.js">Overlay.js</a></li>
                                <li class=""><a href="OverlayManager.js.html" title="OverlayManager.js">OverlayManager.js</a></li>
                                <li class=""><a href="Panel.js.html" title="Panel.js">Panel.js</a></li>
                                <li class=""><a href="SimpleDialog.js.html" title="SimpleDialog.js">SimpleDialog.js</a></li>
                                <li class=""><a href="Tooltip.js.html" title="Tooltip.js">Tooltip.js</a></li>
                        </ul>
                    </div>





            </div>
		</div>
	</div>
	<div id="ft">
        <hr />
        Copyright &copy; 2011 Yahoo! Inc. All rights reserved.
	</div>
</div>
<script type="text/javascript">

    var ALL_YUI_PROPS = [{"access": "private", "host": "YAHOO.widget.OverlayManager", "name": "activeOverlay", "url": "YAHOO.widget.OverlayManager.html#property_activeOverlay", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_addFocusHandlers", "url": "YAHOO.widget.Panel.html#method__addFocusHandlers", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "addProperty", "url": "YAHOO.util.Config.html#method_addProperty", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Module", "name": "_addToParent", "url": "YAHOO.widget.Module.html#method__addToParent", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "align", "url": "YAHOO.widget.Overlay.html#method_align", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_alignOnTrigger", "url": "YAHOO.widget.Overlay.html#method__alignOnTrigger", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "animateIn", "url": "YAHOO.widget.ContainerEffect.html#method_animateIn", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "animateOut", "url": "YAHOO.widget.ContainerEffect.html#method_animateOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "animClass", "url": "YAHOO.widget.ContainerEffect.html#property_animClass", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "appendEvent", "url": "YAHOO.widget.Module.html#event_appendEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "appendToBody", "url": "YAHOO.widget.Module.html#method_appendToBody", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "appendtodocumentbody", "url": "YAHOO.widget.Module.html#config_appendtodocumentbody", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "appendToFooter", "url": "YAHOO.widget.Module.html#method_appendToFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "appendToHeader", "url": "YAHOO.widget.Module.html#method_appendToHeader", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "applyConfig", "url": "YAHOO.util.Config.html#method_applyConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "asyncSubmitEvent", "url": "YAHOO.widget.Dialog.html#event_asyncSubmitEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "attrIn", "url": "YAHOO.widget.ContainerEffect.html#property_attrIn", "type": "property"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "attrOut", "url": "YAHOO.widget.ContainerEffect.html#property_attrOut", "type": "property"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "autodismissdelay", "url": "YAHOO.widget.Tooltip.html#config_autodismissdelay", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "autofillheight", "url": "YAHOO.widget.Overlay.html#config_autofillheight", "type": "config"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_autoFillOnHeightChange", "url": "YAHOO.widget.Overlay.html#method__autoFillOnHeightChange", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_autoFillOnHeightChange", "url": "YAHOO.widget.Panel.html#method__autoFillOnHeightChange", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "beforeHideEvent", "url": "YAHOO.widget.Module.html#event_beforeHideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "beforeHideMaskEvent", "url": "YAHOO.widget.Panel.html#event_beforeHideMaskEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "beforeInitEvent", "url": "YAHOO.widget.Module.html#event_beforeInitEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "beforeMoveEvent", "url": "YAHOO.widget.Overlay.html#event_beforeMoveEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "beforeRenderEvent", "url": "YAHOO.widget.Module.html#event_beforeRenderEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "beforeShowEvent", "url": "YAHOO.widget.Module.html#event_beforeShowEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "beforeShowMaskEvent", "url": "YAHOO.widget.Panel.html#event_beforeShowMaskEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "beforeSubmitEvent", "url": "YAHOO.widget.Dialog.html#event_beforeSubmitEvent", "type": "event"}, {"access": "protected", "host": "YAHOO.widget.OverlayManager", "name": "_bindBlur", "url": "YAHOO.widget.OverlayManager.html#method__bindBlur", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.OverlayManager", "name": "_bindDestroy", "url": "YAHOO.widget.OverlayManager.html#method__bindDestroy", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.OverlayManager", "name": "_bindFocus", "url": "YAHOO.widget.OverlayManager.html#method__bindFocus", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "blurAll", "url": "YAHOO.widget.OverlayManager.html#method_blurAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "blurButtons", "url": "YAHOO.widget.Dialog.html#method_blurButtons", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "body", "url": "YAHOO.widget.Module.html#property_body", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "bringToTop", "url": "YAHOO.widget.Overlay.html#method_bringToTop", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "bringToTop", "url": "YAHOO.widget.OverlayManager.html#method_bringToTop", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "browser", "url": "YAHOO.widget.Module.html#property_browser", "type": "property"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "buildMask", "url": "YAHOO.widget.Panel.html#method_buildMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "buildWrapper", "url": "YAHOO.widget.Panel.html#method_buildWrapper", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "buttons", "url": "YAHOO.widget.Dialog.html#config_buttons", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "cacheEffects", "url": "YAHOO.widget.Module.html#property_cacheEffects", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "callback", "url": "YAHOO.widget.Dialog.html#property_callback", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "callback.argument", "url": "YAHOO.widget.Dialog.html#property_callback.argument", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "callback.failure", "url": "YAHOO.widget.Dialog.html#property_callback.failure", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "callback.success", "url": "YAHOO.widget.Dialog.html#property_callback.success", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "callback.upload", "url": "YAHOO.widget.Dialog.html#property_callback.upload", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "cancel", "url": "YAHOO.widget.Dialog.html#method_cancel", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "cancelEvent", "url": "YAHOO.widget.Dialog.html#event_cancelEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "center", "url": "YAHOO.widget.Overlay.html#method_center", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "cfg", "url": "YAHOO.widget.Module.html#property_cfg", "type": "property"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "cfg", "url": "YAHOO.widget.OverlayManager.html#property_cfg", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "changeBodyEvent", "url": "YAHOO.widget.Module.html#event_changeBodyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "changeContentEvent", "url": "YAHOO.widget.Module.html#event_changeContentEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "changeFooterEvent", "url": "YAHOO.widget.Module.html#event_changeFooterEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Module", "name": "changeHeaderEvent", "url": "YAHOO.widget.Module.html#event_changeHeaderEvent", "type": "event"}, {"access": "", "host": "YAHOO.util.Config", "name": "checkBoolean", "url": "YAHOO.util.Config.html#method_checkBoolean", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "checkNumber", "url": "YAHOO.util.Config.html#method_checkNumber", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "close", "url": "YAHOO.widget.Panel.html#config_close", "type": "config"}, {"access": "private", "host": "YAHOO.widget.OverlayManager", "name": "compareZIndexDesc", "url": "YAHOO.widget.OverlayManager.html#method_compareZIndexDesc", "type": "method"}, {"access": "private", "host": "YAHOO.util.Config", "name": "config", "url": "YAHOO.util.Config.html#property_config", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configAutoFillHeight", "url": "YAHOO.widget.Overlay.html#method_configAutoFillHeight", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "configButtons", "url": "YAHOO.widget.Dialog.html#method_configButtons", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "configChangedEvent", "url": "YAHOO.util.Config.html#event_configChangedEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "configClose", "url": "YAHOO.widget.Dialog.html#method_configClose", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configClose", "url": "YAHOO.widget.Panel.html#method_configClose", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configConstrainToViewport", "url": "YAHOO.widget.Overlay.html#method_configConstrainToViewport", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "configContainer", "url": "YAHOO.widget.Tooltip.html#method_configContainer", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configContext", "url": "YAHOO.widget.Overlay.html#method_configContext", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "configContext", "url": "YAHOO.widget.Tooltip.html#method_configContext", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configDraggable", "url": "YAHOO.widget.Panel.html#method_configDraggable", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "configEffect", "url": "YAHOO.widget.Module.html#method_configEffect", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configFixedCenter", "url": "YAHOO.widget.Overlay.html#method_configFixedCenter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configHeight", "url": "YAHOO.widget.Overlay.html#method_configHeight", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configHeight", "url": "YAHOO.widget.Panel.html#method_configHeight", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "configIcon", "url": "YAHOO.widget.SimpleDialog.html#method_configIcon", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configIframe", "url": "YAHOO.widget.Overlay.html#method_configIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configKeyListeners", "url": "YAHOO.widget.Panel.html#method_configKeyListeners", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configModal", "url": "YAHOO.widget.Panel.html#method_configModal", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "configMonitorResize", "url": "YAHOO.widget.Module.html#method_configMonitorResize", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "configPostMethod", "url": "YAHOO.widget.Dialog.html#method_configPostMethod", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configStrings", "url": "YAHOO.widget.Panel.html#method_configStrings", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "configText", "url": "YAHOO.widget.SimpleDialog.html#method_configText", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "configText", "url": "YAHOO.widget.Tooltip.html#method_configText", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configUnderlay", "url": "YAHOO.widget.Panel.html#method_configUnderlay", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "configVisible", "url": "YAHOO.widget.Module.html#method_configVisible", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configVisible", "url": "YAHOO.widget.Overlay.html#method_configVisible", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configWidth", "url": "YAHOO.widget.Overlay.html#method_configWidth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configWidth", "url": "YAHOO.widget.Panel.html#method_configWidth", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configX", "url": "YAHOO.widget.Overlay.html#method_configX", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configXY", "url": "YAHOO.widget.Overlay.html#method_configXY", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configY", "url": "YAHOO.widget.Overlay.html#method_configY", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "configzIndex", "url": "YAHOO.widget.Overlay.html#method_configzIndex", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "configzIndex", "url": "YAHOO.widget.Panel.html#method_configzIndex", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "constraintoviewport", "url": "YAHOO.widget.Overlay.html#config_constraintoviewport", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "container", "url": "YAHOO.widget.Tooltip.html#config_container", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "context", "url": "YAHOO.widget.Overlay.html#config_context", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "context", "url": "YAHOO.widget.Tooltip.html#config_context", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "contextMouseOutEvent", "url": "YAHOO.widget.Tooltip.html#event_contextMouseOutEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "contextMouseOverEvent", "url": "YAHOO.widget.Tooltip.html#event_contextMouseOverEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "contextTriggerEvent", "url": "YAHOO.widget.Tooltip.html#event_contextTriggerEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "CONTEXT_TRIGGERS", "url": "YAHOO.widget.Overlay.html#property_CONTEXT_TRIGGERS", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "contructor", "url": "YAHOO.widget.Module.html#property_contructor", "type": "property"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "contructor", "url": "YAHOO.widget.OverlayManager.html#property_contructor", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.Module", "name": "_createEffects", "url": "YAHOO.widget.Module.html#method__createEffects", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Panel", "name": "_createHiddenFocusElement", "url": "YAHOO.widget.Panel.html#method__createHiddenFocusElement", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "dd", "url": "YAHOO.widget.Panel.html#property_dd", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Dialog", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.Dialog.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Module", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.Module.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.Overlay.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Panel", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.Panel.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "private", "host": "YAHOO.widget.SimpleDialog", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.SimpleDialog.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Tooltip", "name": "DEFAULT_CONFIG", "url": "YAHOO.widget.Tooltip.html#property_DEFAULT_CONFIG", "type": "property"}, {"access": "", "host": "YAHOO.util.Config", "name": "destroy", "url": "YAHOO.util.Config.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "destroy", "url": "YAHOO.widget.Dialog.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "destroy", "url": "YAHOO.widget.Module.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "destroy", "url": "YAHOO.widget.Overlay.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "destroy", "url": "YAHOO.widget.Panel.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "destroy", "url": "YAHOO.widget.Tooltip.html#method_destroy", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "destroyEvent", "url": "YAHOO.widget.Module.html#event_destroyEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "disabled", "url": "YAHOO.widget.Tooltip.html#config_disabled", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "doCenterOnDOMEvent", "url": "YAHOO.widget.Overlay.html#method_doCenterOnDOMEvent", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Dialog", "name": "_doClose", "url": "YAHOO.widget.Dialog.html#method__doClose", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_doClose", "url": "YAHOO.widget.Panel.html#method__doClose", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "doHide", "url": "YAHOO.widget.Tooltip.html#method_doHide", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "doShow", "url": "YAHOO.widget.Tooltip.html#method_doShow", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "doSubmit", "url": "YAHOO.widget.Dialog.html#method_doSubmit", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "dragEvent", "url": "YAHOO.widget.Panel.html#event_dragEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "draggable", "url": "YAHOO.widget.Panel.html#config_draggable", "type": "config"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "dragOnly", "url": "YAHOO.widget.Panel.html#config_dragOnly", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "effect", "url": "YAHOO.widget.Module.html#config_effect", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "element", "url": "YAHOO.widget.Module.html#property_element", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "enforceConstraints", "url": "YAHOO.widget.Overlay.html#method_enforceConstraints", "type": "method"}, {"access": "private", "host": "YAHOO.util.Config", "name": "eventQueue", "url": "YAHOO.util.Config.html#property_eventQueue", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Dialog", "name": "EVENT_TYPES", "url": "YAHOO.widget.Dialog.html#property_EVENT_TYPES", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Module", "name": "EVENT_TYPES", "url": "YAHOO.widget.Module.html#property_EVENT_TYPES", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "EVENT_TYPES", "url": "YAHOO.widget.Overlay.html#property_EVENT_TYPES", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Panel", "name": "EVENT_TYPES", "url": "YAHOO.widget.Panel.html#property_EVENT_TYPES", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Tooltip", "name": "EVENT_TYPES", "url": "YAHOO.widget.Tooltip.html#property_EVENT_TYPES", "type": "property"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "FADE", "url": "YAHOO.widget.ContainerEffect.html#method_FADE", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "fillHeight", "url": "YAHOO.widget.Overlay.html#method_fillHeight", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "find", "url": "YAHOO.widget.OverlayManager.html#method_find", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "_findTriggerCE", "url": "YAHOO.widget.Overlay.html#method__findTriggerCE", "type": "method"}, {"access": "private", "host": "YAHOO.util.Config", "name": "fireEvent", "url": "YAHOO.util.Config.html#method_fireEvent", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "fireQueue", "url": "YAHOO.util.Config.html#method_fireQueue", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "fitsInViewport", "url": "YAHOO.widget.Overlay.html#method_fitsInViewport", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "fixedcenter", "url": "YAHOO.widget.Overlay.html#config_fixedcenter", "type": "config"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "focus", "url": "YAHOO.widget.OverlayManager.html#method_focus", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "focusDefaultButton", "url": "YAHOO.widget.Dialog.html#method_focusDefaultButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "focusevent", "url": "YAHOO.widget.OverlayManager.html#config_focusevent", "type": "config"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "focusFirst", "url": "YAHOO.widget.Dialog.html#method_focusFirst", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "focusFirst", "url": "YAHOO.widget.Panel.html#method_focusFirst", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "focusFirstButton", "url": "YAHOO.widget.Dialog.html#method_focusFirstButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "_focusFirstModal", "url": "YAHOO.widget.Panel.html#method__focusFirstModal", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "focusLast", "url": "YAHOO.widget.Dialog.html#method_focusLast", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "focusLast", "url": "YAHOO.widget.Panel.html#method_focusLast", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "focusLastButton", "url": "YAHOO.widget.Dialog.html#method_focusLastButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "_focusOnShow", "url": "YAHOO.widget.Panel.html#method__focusOnShow", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "footer", "url": "YAHOO.widget.Module.html#property_footer", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "forceContainerRedraw", "url": "YAHOO.widget.Overlay.html#method_forceContainerRedraw", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "forceUnderlayRedraw", "url": "YAHOO.widget.Panel.html#method_forceUnderlayRedraw", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "forceUnderlayRedraw", "url": "YAHOO.widget.Tooltip.html#method_forceUnderlayRedraw", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "form", "url": "YAHOO.widget.Dialog.html#property_form", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "formSubmitEvent", "url": "YAHOO.widget.Dialog.html#event_formSubmitEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "getActive", "url": "YAHOO.widget.OverlayManager.html#method_getActive", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Dialog", "name": "_getButton", "url": "YAHOO.widget.Dialog.html#method__getButton", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "getButtons", "url": "YAHOO.widget.Dialog.html#method_getButtons", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "_getComputedHeight", "url": "YAHOO.widget.Overlay.html#method__getComputedHeight", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "getConfig", "url": "YAHOO.util.Config.html#method_getConfig", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_getConstrainedPos", "url": "YAHOO.widget.Overlay.html#method__getConstrainedPos", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "getConstrainedX", "url": "YAHOO.widget.Overlay.html#method_getConstrainedX", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "getConstrainedXY", "url": "YAHOO.widget.Overlay.html#method_getConstrainedXY", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "getConstrainedY", "url": "YAHOO.widget.Overlay.html#method_getConstrainedY", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "getData", "url": "YAHOO.widget.Dialog.html#method_getData", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "getFocusableElements", "url": "YAHOO.widget.Panel.html#method_getFocusableElements", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Dialog", "name": "_getFormAttributes", "url": "YAHOO.widget.Dialog.html#method__getFormAttributes", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "_getPreciseHeight", "url": "YAHOO.widget.Overlay.html#method__getPreciseHeight", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "getProperty", "url": "YAHOO.util.Config.html#method_getProperty", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "handleCompleteAnimateIn", "url": "YAHOO.widget.ContainerEffect.html#method_handleCompleteAnimateIn", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "handleCompleteAnimateOut", "url": "YAHOO.widget.ContainerEffect.html#method_handleCompleteAnimateOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "handleStartAnimateIn", "url": "YAHOO.widget.ContainerEffect.html#method_handleStartAnimateIn", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "handleStartAnimateOut", "url": "YAHOO.widget.ContainerEffect.html#method_handleStartAnimateOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "handleTweenAnimateIn", "url": "YAHOO.widget.ContainerEffect.html#method_handleTweenAnimateIn", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "handleTweenAnimateOut", "url": "YAHOO.widget.ContainerEffect.html#method_handleTweenAnimateOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "header", "url": "YAHOO.widget.Module.html#property_header", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "height", "url": "YAHOO.widget.Overlay.html#config_height", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "hide", "url": "YAHOO.widget.Module.html#method_hide", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "hideaftersubmit", "url": "YAHOO.widget.Dialog.html#config_hideaftersubmit", "type": "config"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "hideAll", "url": "YAHOO.widget.OverlayManager.html#method_hideAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "hidedelay", "url": "YAHOO.widget.Tooltip.html#config_hidedelay", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "hideEvent", "url": "YAHOO.widget.Module.html#event_hideEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "hideIframe", "url": "YAHOO.widget.Overlay.html#method_hideIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "hideMacGeckoScrollbars", "url": "YAHOO.widget.Overlay.html#method_hideMacGeckoScrollbars", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "hideMask", "url": "YAHOO.widget.Panel.html#method_hideMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "hideMaskEvent", "url": "YAHOO.widget.Panel.html#event_hideMaskEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "icon", "url": "YAHOO.widget.SimpleDialog.html#config_icon", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "id", "url": "YAHOO.widget.Module.html#property_id", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "iframe", "url": "YAHOO.widget.Overlay.html#config_iframe", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "imageRoot", "url": "YAHOO.widget.Module.html#property_imageRoot", "type": "property"}, {"access": "", "host": "YAHOO.util.Config", "name": "init", "url": "YAHOO.util.Config.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "init", "url": "YAHOO.widget.ContainerEffect.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "init", "url": "YAHOO.widget.Dialog.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "init", "url": "YAHOO.widget.Module.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "init", "url": "YAHOO.widget.Overlay.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "init", "url": "YAHOO.widget.OverlayManager.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "init", "url": "YAHOO.widget.Panel.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "init", "url": "YAHOO.widget.SimpleDialog.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "init", "url": "YAHOO.widget.Tooltip.html#method_init", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "initDefaultConfig", "url": "YAHOO.widget.Dialog.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "initDefaultConfig", "url": "YAHOO.widget.Module.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "initDefaultConfig", "url": "YAHOO.widget.Overlay.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "initDefaultConfig", "url": "YAHOO.widget.OverlayManager.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "initDefaultConfig", "url": "YAHOO.widget.Panel.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "initDefaultConfig", "url": "YAHOO.widget.SimpleDialog.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "initDefaultConfig", "url": "YAHOO.widget.Tooltip.html#method_initDefaultConfig", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "initEvent", "url": "YAHOO.widget.Module.html#event_initEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "initEvents", "url": "YAHOO.widget.Dialog.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "initEvents", "url": "YAHOO.widget.Module.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "initEvents", "url": "YAHOO.widget.Overlay.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "initEvents", "url": "YAHOO.widget.Panel.html#method_initEvents", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "initEvents", "url": "YAHOO.widget.Tooltip.html#method_initEvents", "type": "method"}, {"access": "private", "host": "YAHOO.util.Config", "name": "initialConfig", "url": "YAHOO.util.Config.html#property_initialConfig", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.Module", "name": "_initResizeMonitor", "url": "YAHOO.widget.Module.html#method__initResizeMonitor", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "initResizeMonitor", "url": "YAHOO.widget.Module.html#method_initResizeMonitor", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "isSecure", "url": "YAHOO.widget.Module.html#property_isSecure", "type": "property"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "keylisteners", "url": "YAHOO.widget.Panel.html#config_keylisteners", "type": "config"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "lastFrameOnStop", "url": "YAHOO.widget.ContainerEffect.html#property_lastFrameOnStop", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.OverlayManager", "name": "_manageBlur", "url": "YAHOO.widget.OverlayManager.html#method__manageBlur", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.OverlayManager", "name": "_manageFocus", "url": "YAHOO.widget.OverlayManager.html#method__manageFocus", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "manualSubmitEvent", "url": "YAHOO.widget.Dialog.html#event_manualSubmitEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "modal", "url": "YAHOO.widget.Panel.html#config_modal", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "monitorresize", "url": "YAHOO.widget.Module.html#config_monitorresize", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "moveEvent", "url": "YAHOO.widget.Overlay.html#event_moveEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "moveTo", "url": "YAHOO.widget.Overlay.html#method_moveTo", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "onContextMouseMove", "url": "YAHOO.widget.Tooltip.html#method_onContextMouseMove", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "onContextMouseOut", "url": "YAHOO.widget.Tooltip.html#method_onContextMouseOut", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "onContextMouseOver", "url": "YAHOO.widget.Tooltip.html#method_onContextMouseOver", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "onDomResize", "url": "YAHOO.widget.Module.html#method_onDomResize", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "onDomResize", "url": "YAHOO.widget.Overlay.html#method_onDomResize", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Panel", "name": "_onElementFocus", "url": "YAHOO.widget.Panel.html#method__onElementFocus", "type": "method"}, {"access": "private", "host": "YAHOO.widget.OverlayManager", "name": "_onOverlayBlurHandler", "url": "YAHOO.widget.OverlayManager.html#method__onOverlayBlurHandler", "type": "method"}, {"access": "private", "host": "YAHOO.widget.OverlayManager", "name": "_onOverlayDestroy", "url": "YAHOO.widget.OverlayManager.html#method__onOverlayDestroy", "type": "method"}, {"access": "private", "host": "YAHOO.widget.OverlayManager", "name": "_onOverlayElementFocus", "url": "YAHOO.widget.OverlayManager.html#method__onOverlayElementFocus", "type": "method"}, {"access": "private", "host": "YAHOO.widget.OverlayManager", "name": "_onOverlayFocusHandler", "url": "YAHOO.widget.OverlayManager.html#method__onOverlayFocusHandler", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "onRender", "url": "YAHOO.widget.Tooltip.html#method_onRender", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "outputEventQueue", "url": "YAHOO.util.Config.html#method_outputEventQueue", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "overlay", "url": "YAHOO.widget.ContainerEffect.html#property_overlay", "type": "property"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "OverlayManager.CSS_FOCUSED", "url": "YAHOO.widget.OverlayManager.html#property_OverlayManager.CSS_FOCUSED", "type": "property"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "overlays", "url": "YAHOO.widget.OverlayManager.html#property_overlays", "type": "property"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "overlays", "url": "YAHOO.widget.OverlayManager.html#config_overlays", "type": "config"}, {"access": "", "host": "YAHOO.util.Config", "name": "owner", "url": "YAHOO.util.Config.html#property_owner", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "platform", "url": "YAHOO.widget.Module.html#property_platform", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "postdata", "url": "YAHOO.widget.Dialog.html#config_postdata", "type": "config"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "postmethod", "url": "YAHOO.widget.Dialog.html#config_postmethod", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "preventcontextoverlap", "url": "YAHOO.widget.Overlay.html#config_preventcontextoverlap", "type": "config"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_preventOverlap", "url": "YAHOO.widget.Overlay.html#method__preventOverlap", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "preventoverlap", "url": "YAHOO.widget.Tooltip.html#config_preventoverlap", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "preventOverlay", "url": "YAHOO.widget.Tooltip.html#method_preventOverlay", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_primeXYFromDOM", "url": "YAHOO.widget.Overlay.html#method__primeXYFromDOM", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_processTriggers", "url": "YAHOO.widget.Overlay.html#method__processTriggers", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "queueInProgress", "url": "YAHOO.util.Config.html#property_queueInProgress", "type": "property"}, {"access": "", "host": "YAHOO.util.Config", "name": "queueProperty", "url": "YAHOO.util.Config.html#method_queueProperty", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "refireEvent", "url": "YAHOO.util.Config.html#method_refireEvent", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "refresh", "url": "YAHOO.util.Config.html#method_refresh", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "register", "url": "YAHOO.widget.OverlayManager.html#method_register", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "registerDragDrop", "url": "YAHOO.widget.Panel.html#method_registerDragDrop", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "registerForm", "url": "YAHOO.widget.Dialog.html#method_registerForm", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "registerForm", "url": "YAHOO.widget.SimpleDialog.html#method_registerForm", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "remove", "url": "YAHOO.widget.OverlayManager.html#method_remove", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Tooltip", "name": "_removeEventListeners", "url": "YAHOO.widget.Tooltip.html#method__removeEventListeners", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_removeFocusHandlers", "url": "YAHOO.widget.Panel.html#method__removeFocusHandlers", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "removeMask", "url": "YAHOO.widget.Panel.html#method_removeMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "render", "url": "YAHOO.widget.Module.html#method_render", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "render", "url": "YAHOO.widget.Panel.html#method_render", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Module", "name": "_renderBody", "url": "YAHOO.widget.Module.html#method__renderBody", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_renderBody", "url": "YAHOO.widget.Panel.html#method__renderBody", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "renderEvent", "url": "YAHOO.widget.Module.html#event_renderEvent", "type": "event"}, {"access": "protected", "host": "YAHOO.widget.Module", "name": "_renderFooter", "url": "YAHOO.widget.Module.html#method__renderFooter", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_renderFooter", "url": "YAHOO.widget.Panel.html#method__renderFooter", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Module", "name": "_renderHeader", "url": "YAHOO.widget.Module.html#method__renderHeader", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_renderHeader", "url": "YAHOO.widget.Panel.html#method__renderHeader", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "resetProperty", "url": "YAHOO.util.Config.html#method_resetProperty", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "setBody", "url": "YAHOO.widget.Module.html#method_setBody", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "setBody", "url": "YAHOO.widget.SimpleDialog.html#method_setBody", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_setDomVisibility", "url": "YAHOO.widget.Overlay.html#method__setDomVisibility", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "setFirstLastFocusable", "url": "YAHOO.widget.Dialog.html#method_setFirstLastFocusable", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "setFirstLastFocusable", "url": "YAHOO.widget.Panel.html#method_setFirstLastFocusable", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "setFooter", "url": "YAHOO.widget.Module.html#method_setFooter", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "setHeader", "url": "YAHOO.widget.Module.html#method_setHeader", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "setProperty", "url": "YAHOO.util.Config.html#method_setProperty", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Dialog", "name": "_setTabLoop", "url": "YAHOO.widget.Dialog.html#method__setTabLoop", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "setTabLoop", "url": "YAHOO.widget.Dialog.html#method_setTabLoop", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_setTabLoop", "url": "YAHOO.widget.Panel.html#method__setTabLoop", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "setTabLoop", "url": "YAHOO.widget.Panel.html#method_setTabLoop", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "show", "url": "YAHOO.widget.Module.html#method_show", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "showAll", "url": "YAHOO.widget.OverlayManager.html#method_showAll", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "showdelay", "url": "YAHOO.widget.Tooltip.html#config_showdelay", "type": "config"}, {"access": "", "host": "YAHOO.widget.Module", "name": "showEvent", "url": "YAHOO.widget.Module.html#event_showEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "showIframe", "url": "YAHOO.widget.Overlay.html#method_showIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "showMacGeckoScrollbars", "url": "YAHOO.widget.Overlay.html#method_showMacGeckoScrollbars", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "showMask", "url": "YAHOO.widget.Panel.html#method_showMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "showMaskEvent", "url": "YAHOO.widget.Panel.html#event_showMaskEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "showProcId", "url": "YAHOO.widget.Tooltip.html#property_showProcId", "type": "property"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "sizeMask", "url": "YAHOO.widget.Panel.html#method_sizeMask", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "sizeUnderlay", "url": "YAHOO.widget.Panel.html#method_sizeUnderlay", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "SLIDE", "url": "YAHOO.widget.ContainerEffect.html#method_SLIDE", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "stackIframe", "url": "YAHOO.widget.Overlay.html#method_stackIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "stackMask", "url": "YAHOO.widget.Panel.html#method_stackMask", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.ContainerEffect", "name": "_stopAnims", "url": "YAHOO.widget.ContainerEffect.html#method__stopAnims", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "strings", "url": "YAHOO.widget.Panel.html#config_strings", "type": "config"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "submit", "url": "YAHOO.widget.Dialog.html#method_submit", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "submitEvent", "url": "YAHOO.widget.Dialog.html#event_submitEvent", "type": "event"}, {"access": "protected", "host": "YAHOO.widget.Dialog", "name": "_submitHandler", "url": "YAHOO.widget.Dialog.html#method__submitHandler", "type": "method"}, {"access": "", "host": "YAHOO.util.Config", "name": "subscribeToConfigEvent", "url": "YAHOO.util.Config.html#method_subscribeToConfigEvent", "type": "method"}, {"access": "private", "host": "YAHOO.widget.Module", "name": "_supportsCWResize", "url": "YAHOO.widget.Module.html#method__supportsCWResize", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "syncIframe", "url": "YAHOO.widget.Overlay.html#method_syncIframe", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "syncPosition", "url": "YAHOO.widget.Overlay.html#method_syncPosition", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.OverlayManager", "name": "_syncZIndex", "url": "YAHOO.widget.OverlayManager.html#method__syncZIndex", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "targetElement", "url": "YAHOO.widget.ContainerEffect.html#property_targetElement", "type": "property"}, {"access": "protected", "host": "YAHOO.widget.Panel", "name": "_testIfFocusable", "url": "YAHOO.widget.Panel.html#method__testIfFocusable", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "text", "url": "YAHOO.widget.SimpleDialog.html#config_text", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "text", "url": "YAHOO.widget.Tooltip.html#config_text", "type": "config"}, {"access": "", "host": "YAHOO.util.Config", "name": "toString", "url": "YAHOO.util.Config.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.ContainerEffect", "name": "toString", "url": "YAHOO.widget.ContainerEffect.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "toString", "url": "YAHOO.widget.Dialog.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "toString", "url": "YAHOO.widget.Module.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "toString", "url": "YAHOO.widget.Overlay.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.OverlayManager", "name": "toString", "url": "YAHOO.widget.OverlayManager.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "toString", "url": "YAHOO.widget.Panel.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "toString", "url": "YAHOO.widget.SimpleDialog.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "toString", "url": "YAHOO.widget.Tooltip.html#method_toString", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "underlay", "url": "YAHOO.widget.Panel.html#config_underlay", "type": "config"}, {"access": "", "host": "YAHOO.util.Config", "name": "unsubscribeFromConfigEvent", "url": "YAHOO.util.Config.html#method_unsubscribeFromConfigEvent", "type": "method"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "validate", "url": "YAHOO.widget.Dialog.html#method_validate", "type": "method"}, {"access": "protected", "host": "YAHOO.widget.Overlay", "name": "_validateAutoFillHeight", "url": "YAHOO.widget.Overlay.html#method__validateAutoFillHeight", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "visible", "url": "YAHOO.widget.Module.html#config_visible", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "width", "url": "YAHOO.widget.Overlay.html#config_width", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "width", "url": "YAHOO.widget.Tooltip.html#config_width", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "x", "url": "YAHOO.widget.Overlay.html#config_x", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "xy", "url": "YAHOO.widget.Overlay.html#config_xy", "type": "config"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "xyoffset", "url": "YAHOO.widget.Tooltip.html#config_xyoffset", "type": "config"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "y", "url": "YAHOO.widget.Overlay.html#config_y", "type": "config"}, {"access": "", "host": "YAHOO.util.Config", "name": "YAHOO.util.Config.alreadySubscribed", "url": "YAHOO.util.Config.html#method_YAHOO.util.Config.alreadySubscribed", "type": "method"}, {"access": "private", "host": "YAHOO.util.Config", "name": "YAHOO.util.Config.BOOLEAN_TYPE", "url": "YAHOO.util.Config.html#property_YAHOO.util.Config.BOOLEAN_TYPE", "type": "property"}, {"access": "private", "host": "YAHOO.util.Config", "name": "YAHOO.util.Config.CONFIG_CHANGED_EVENT", "url": "YAHOO.util.Config.html#property_YAHOO.util.Config.CONFIG_CHANGED_EVENT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Dialog", "name": "YAHOO.widget.Dialog.CSS_DIALOG", "url": "YAHOO.widget.Dialog.html#property_YAHOO.widget.Dialog.CSS_DIALOG", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_BODY", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.CSS_BODY", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_FOOTER", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.CSS_FOOTER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_HEADER", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.CSS_HEADER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.CSS_MODULE", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.CSS_MODULE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.forceDocumentRedraw", "url": "YAHOO.widget.Module.html#method_YAHOO.widget.Module.forceDocumentRedraw", "type": "method"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.IMG_ROOT", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.IMG_ROOT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.IMG_ROOT_SSL", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.IMG_ROOT_SSL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.RESIZE_MONITOR_BUFFER", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.RESIZE_MONITOR_BUFFER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL", "url": "YAHOO.widget.Module.html#property_YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Module", "name": "YAHOO.widget.Module.textResizeEvent", "url": "YAHOO.widget.Module.html#event_YAHOO.widget.Module.textResizeEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.BOTTOM_LEFT", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.BOTTOM_LEFT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.BOTTOM_RIGHT", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.BOTTOM_RIGHT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.CSS_HIDDEN", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.CSS_HIDDEN", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.CSS_IFRAME", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.CSS_IFRAME", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.CSS_OVERLAY", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.CSS_OVERLAY", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.IFRAME_SRC", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.IFRAME_SRC", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay._initialized", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay._initialized", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.STD_MOD_RE", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.STD_MOD_RE", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.TOP_LEFT", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.TOP_LEFT", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.TOP_RIGHT", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.TOP_RIGHT", "type": "property"}, {"access": "private", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay._TRIGGER_MAP", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay._TRIGGER_MAP", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.VIEWPORT_OFFSET", "url": "YAHOO.widget.Overlay.html#property_YAHOO.widget.Overlay.VIEWPORT_OFFSET", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowResizeEvent", "url": "YAHOO.widget.Overlay.html#event_YAHOO.widget.Overlay.windowResizeEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowResizeHandler", "url": "YAHOO.widget.Overlay.html#method_YAHOO.widget.Overlay.windowResizeHandler", "type": "method"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowScrollEvent", "url": "YAHOO.widget.Overlay.html#event_YAHOO.widget.Overlay.windowScrollEvent", "type": "event"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "YAHOO.widget.Overlay.windowScrollHandler", "url": "YAHOO.widget.Overlay.html#method_YAHOO.widget.Overlay.windowScrollHandler", "type": "method"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel.CSS_PANEL", "url": "YAHOO.widget.Panel.html#property_YAHOO.widget.Panel.CSS_PANEL", "type": "property"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel.CSS_PANEL_CONTAINER", "url": "YAHOO.widget.Panel.html#property_YAHOO.widget.Panel.CSS_PANEL_CONTAINER", "type": "property"}, {"access": "", "host": "YAHOO.widget.Panel", "name": "YAHOO.widget.Panel.FOCUSABLE", "url": "YAHOO.widget.Panel.html#property_YAHOO.widget.Panel.FOCUSABLE", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_ALARM", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_ALARM", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_BLOCK", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_BLOCK", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_CSS_CLASSNAME", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_CSS_CLASSNAME", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_HELP", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_HELP", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_INFO", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_INFO", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_TIP", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_TIP", "type": "property"}, {"access": "", "host": "YAHOO.widget.SimpleDialog", "name": "YAHOO.widget.SimpleDialog.ICON_WARN", "url": "YAHOO.widget.SimpleDialog.html#property_YAHOO.widget.SimpleDialog.ICON_WARN", "type": "property"}, {"access": "", "host": "YAHOO.widget.Tooltip", "name": "YAHOO.widget.Tooltip.CSS_TOOLTIP", "url": "YAHOO.widget.Tooltip.html#property_YAHOO.widget.Tooltip.CSS_TOOLTIP", "type": "property"}, {"access": "", "host": "YAHOO.widget.Overlay", "name": "zIndex", "url": "YAHOO.widget.Overlay.html#config_zIndex", "type": "config"}];
</script>
</body>
</html>
